Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Перетаскивание формы без заголовка по экрану / 19 сообщений из 19, страница 1 из 1
22.10.2010, 09:58
    #36913784
pEvil
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перетаскивание формы без заголовка по экрану
Есть форма, со свойством BorderStyle = bsNone, и всю клиентскую облать занимает ProgressBar - то есть форму вообще не видно, только бар.
Я хочу, чтобы его можно было перетаскивать левой кнопкой мыши по всему экрану.

DragKind = dkDock и DragMode = dmAutomatic на ProgressBar не работают - бар вытаскивается с формы и на его месте остается незакрашенная ни на что не реагирующая область.

Подскажите, через какие события и на чём (на прогрессбаре или всё-таки на самой форме) сделать перетаскивание вручную?
...
Рейтинг: 0 / 0
22.10.2010, 09:59
    #36913787
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перетаскивание формы без заголовка по экрану
WM_NCHITTEST
...
Рейтинг: 0 / 0
22.10.2010, 10:38
    #36913893
pEvil
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перетаскивание формы без заголовка по экрану
softwarer,

Спасибо.
Понимаю, что это то, что мне нужно, но, честно говоря, не могу понять, как использовать.
Нашел пример, где htClient подменяется на htCaption, и вся форма перетаскивается по нажатию на её клиентскую часть. Но в моем случае сообщение получает ProgressBar, и он же его обрабатывает. Как заставить его передать сообщение форме?
...
Рейтинг: 0 / 0
22.10.2010, 10:42
    #36913902
BlackSmoke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перетаскивание формы без заголовка по экрану
в событии OnMouseDown контрола за который хочешь таскать

ReleaseCapture;
Perform(WM_SYSCOMMAND, $F012, 0);
...
Рейтинг: 0 / 0
22.10.2010, 10:42
    #36913907
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перетаскивание формы без заголовка по экрану
Например, TControl.WindowProc
...
Рейтинг: 0 / 0
22.10.2010, 10:42
    #36913908
лолл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перетаскивание формы без заголовка по экрану
Мда, проходят годы, а вопросы не меняются... как десять лет назад спрашивали, так и до сих пор все те же вопросы... Такое впечатление, что Дельфи существует лишь для написания форм, перемещаемых по экрану за что угодно, непрямоугольной формы, полупрозрачных и т.п и т.п...
...
Рейтинг: 0 / 0
22.10.2010, 10:44
    #36913911
Gator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перетаскивание формы без заголовка по экрану
SendMessage, PostMessage.
А примеров WM_NCHITTEST и здесь и в сети как грязи
...
Рейтинг: 0 / 0
22.10.2010, 10:46
    #36913922
ther
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перетаскивание формы без заголовка по экрану
попробуйте в MouseMove

Код: plaintext
1.
2.
3.
4.
 var 
 Const  SC_DragMove = $F012;
 begin 
  ReleaseCapture;
  Perform(WM_SysCommand, SC_DragMove,  0 );
...
Рейтинг: 0 / 0
22.10.2010, 10:51
    #36913938
pEvil
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перетаскивание формы без заголовка по экрану
Спасибо, все заработало!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
28.05.2018, 16:54
    #39651203
delphi6
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перетаскивание формы без заголовка по экрану
Код: pascal
1.
2.
3.
4.
procedure TForm1.FormCreate(Sender: TObject);
begin
  BorderStyle := bsNone;
end;



Код: pascal
1.
2.
3.
4.
5.
6.
procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture;
  Perform(WM_SYSCOMMAND, $F012, 0);
end;



Форма таскается отлично, но вообще никак не реагирует на приближение к краям экрана - как в это добавить поддержку Aero Snap?

YouTube Video
...
Рейтинг: 0 / 0
28.05.2018, 17:16
    #39651239
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перетаскивание формы без заголовка по экрану
delphi6Форма таскается отлично, но вообще никак не реагирует на приближение к краям экрана - как в это добавить поддержку Aero Snap?А с какой стати она должна реагировать? И как?
...
Рейтинг: 0 / 0
28.05.2018, 17:43
    #39651266
delphi6
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перетаскивание формы без заголовка по экрану
white_niggerdelphi6Форма таскается отлично, но вообще никак не реагирует на приближение к краям экрана - как в это добавить поддержку Aero Snap?А с какой стати она должна реагировать? И как?
Давай вместе подождём умных людей - авось придут и ответят нам на наши вопросы.
...
Рейтинг: 0 / 0
28.05.2018, 21:54
    #39651367
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перетаскивание формы без заголовка по экрану
delphi6,
Ты, для начала ответь на вопросы, заданные тебе. А уж потом жди
...
Рейтинг: 0 / 0
28.05.2018, 22:10
    #39651375
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перетаскивание формы без заголовка по экрану
delphi6Давай вместе подождём умных людей - авось придут и ответят нам на наши вопросы.
Вопрос уже отвечен восемь лет назад softwarer-ом. Если ты решил его проигнорировать и использовать левые хаки, только потому что "так проще", тебе уже никакие умные люди не помогут. За исключением хирургов, может быть.
...
Рейтинг: 0 / 0
29.05.2018, 06:42
    #39651450
delphi6
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перетаскивание формы без заголовка по экрану
white_niggerdelphi6,
Ты, для начала ответь на вопросы, заданные тебе. А уж потом жди
Ты, для начала ответь на вопросы, заданные тебе. А уж потом встречные задавай ;)

Попал в аналогичную ситуацию - вижу решение, но не могу понять, как его интерпретировать на Delphi. Не понимаю я Windows Forms.
...
Рейтинг: 0 / 0
29.05.2018, 12:09
    #39651675
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перетаскивание формы без заголовка по экрану
delphi6Какие ещё "хаки"...

Самые натуральные. Ты, по ходу, не понимаешь что такое WM_SYSCOMMAND и как оно работает.
Соответственно не понимаешь почему оно не работает так как тебе хочется. А оно просто не
может.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
29.05.2018, 12:23
    #39651689
Кукареку
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перетаскивание формы без заголовка по экрану
У delphi6 развитие останорвилось именно на delphi6.

Поэтому, он и не понимает, что убрав рамки, он решает функциональности - той, которую ему необхадима
...
Рейтинг: 0 / 0
29.05.2018, 13:35
    #39651754
delphi6
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перетаскивание формы без заголовка по экрану
Какие унылые стандартные комментарии, словно вернулся в 2008-й: никакого полёта фантазии, никакой импровизации. Вся жизнь строго по API и мануалам, а любого, кто попробует отступить от канонов - нужно сразу и всем стадом обложить оскорблениями и подвесить на вилы

Ладушки, вопрос закрыт - сделал чуть-чуть иначе, но зато добившись нужного мне поведения от окна. Немного костыльно, не без этого, но конечный пользователь один хрен кода не видит (ему нужна визуальная красота и чтобы нельзя было кастомное отличить от системного), а бОльшего мне и самому не нужно :)
...
Рейтинг: 0 / 0
29.05.2018, 19:36
    #39652027
527470
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перетаскивание формы без заголовка по экрану
delphi6,

Ну так поделился бы решением, а то ещё найдутся такие кто с Windows Forms не дружит.

И да, нормально это делается через API и по мануалу, на что тебе намекнули.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Перетаскивание формы без заголовка по экрану / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]