Высший разум
(1271064)
10 лет назад
Просто передавай в эту функцию не form1, form2...formN и должно сработать. Это вроде перемещение формы вне заголовка. Думаю, сработает и со строкой:
(x as TForm).Perform(WM_SYSCOMMAND, $F012, 0);Либо лучше TCustomForm вместо TForm подсунуть, если потомки слишком разные. Метод Perform вроде у них есть. А вообще лучшей реализацией будет передавать HWND формы и заюзать SendMessage. Так например:
procedure DragMove(hWin: HWND);
const
SC_DRAGMOVE = $F012;
begin
ReleaseCapture;
SendMessage(hWin, WM_SYSCOMMAND, SC_DRAGMOVE, 0);
end;
procedure Move(x:TObject);
begin
ReleaseCapture;
TForm(x as TForm).Perform(WM_SYSCOMMAND, $F012, 0);
end;