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

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

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

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

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

Код: plaintext
1.
2.
3.
4.
 var 
 Const  SC_DragMove = $F012;
 begin 
  ReleaseCapture;
  Perform(WM_SysCommand, SC_DragMove,  0 );
...
Рейтинг: 0 / 0
Перетаскивание формы без заголовка по экрану
    #36913938
pEvil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, все заработало!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Перетаскивание формы без заголовка по экрану
    #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
Перетаскивание формы без заголовка по экрану
    #39651239
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
delphi6Форма таскается отлично, но вообще никак не реагирует на приближение к краям экрана - как в это добавить поддержку Aero Snap?А с какой стати она должна реагировать? И как?
...
Рейтинг: 0 / 0
Перетаскивание формы без заголовка по экрану
    #39651266
delphi6
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
white_niggerdelphi6Форма таскается отлично, но вообще никак не реагирует на приближение к краям экрана - как в это добавить поддержку Aero Snap?А с какой стати она должна реагировать? И как?
Давай вместе подождём умных людей - авось придут и ответят нам на наши вопросы.
...
Рейтинг: 0 / 0
Перетаскивание формы без заголовка по экрану
    #39651367
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
delphi6,
Ты, для начала ответь на вопросы, заданные тебе. А уж потом жди
...
Рейтинг: 0 / 0
Перетаскивание формы без заголовка по экрану
    #39651375
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
delphi6Давай вместе подождём умных людей - авось придут и ответят нам на наши вопросы.
Вопрос уже отвечен восемь лет назад softwarer-ом. Если ты решил его проигнорировать и использовать левые хаки, только потому что "так проще", тебе уже никакие умные люди не помогут. За исключением хирургов, может быть.
...
Рейтинг: 0 / 0
Перетаскивание формы без заголовка по экрану
    #39651450
delphi6
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
white_niggerdelphi6,
Ты, для начала ответь на вопросы, заданные тебе. А уж потом жди
Ты, для начала ответь на вопросы, заданные тебе. А уж потом встречные задавай ;)

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

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

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

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

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

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


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