Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перетащитиь форму не за заголовок [D7, WinXP]


Страницы:   1 2

parovoZZ ©   (2004-06-20 20:10:00) 

Как сделать сабж? SendMessage (Handle, WM_NCLButtonDown, HTCaption, 0) не подходит, потому как нужно ещё сделать вычисления, пока нажата кнопка мыши.


GuAV   (2004-06-20 21:15:00) [21]


> Да не, нужно на апях

А на апях

> Perform(WM_SYSCOMMAND, $F012, 0);

становится SendMessage, тока и всего.


Rouse_   (2004-06-20 21:14:00) [22]

> [3] parovoZZ ©   (20.06.04 20:42)
Позвольте, но где вы видите не API в ответе grom?


parovoZZ   (2004-06-20 20:42:00) [23]

Да не, нужно на апях. Проблема в том, что сообщение WM_LButtonDown отлавливается и я делаю всё, что нужно, но при отпускании кнопки сообщение WM_LButtonUp игнорируется окном. Не могу понять почему.


grom   (2004-06-20 20:37:00) [24]

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Perform(WM_SYSCOMMAND, $F012, 0);
end;


}{enon   (2004-06-20 20:22:00) [25]

Может так получится:

var //interface
 d: boolean;
 x0,y0: integer;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
d := true;
x0 := x;
y0 := y;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
d := false;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin
if d then
 begin
 Left := Left + x - x0;
 Top := Top + y - y0;
 end;
end;


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо