Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

Двигать форму, держась за любую ее точку   Найти похожие ветки 

 
-kiril   (2004-10-29 12:09) [0]

Добрый день!
Мне нужно, чтобы форма двигалась не только при удерживании заголовка, но и при нахождении мышки в любой ее части. Делаю это так:

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
const
 SC_DragMove = $F012;  { a magic number }
begin
 ReleaseCapture;
 Perform(WM_SysCommand, SC_DragMove, 0);
end;

Здесь все нормально. Но если сдинуть форму таким образом, чтобы она ушла за верхнюю границу экрана, то происходит ее возвращение. Как победить это?


 
a123   (2004-10-29 12:46) [1]

procedure WMNCHitTest(var M: TWMNCHitTest); message WM_NCHITTEST;
procedure WMNCHitTest(var M: TWMNCHitTest);
begin
inherited; // вызов унаследованного обработчика
if M.Result = htClient then // Мышь сидит на окне? Если да
M.Result := htCaption; // - то пусть Windows думает, что мышь на caption bar
end;


 
Ega23 ©   (2004-10-29 12:51) [2]

Создай форму из одного заголовка!  :о)


 
abc   (2004-10-29 16:58) [3]

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

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 вся ветка

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.024 c
14-1099016697
Думкин
2004-10-29 06:24
2004.11.14
С днем рождения! 29 октября


1-1099300677
Горбатов В.Ю.
2004-11-01 12:17
2004.11.14
Реакция на нажатие кнопки


6-1094571193
Klopan
2004-09-07 19:33
2004.11.14
Порт


6-1092936315
Фёдор Мегатронов
2004-08-19 21:25
2004.11.14
Две функции возвращают белеберду в место размера файла в инете


1-1099227590
Ada
2004-10-31 15:59
2004.11.14
Изменить шрифт отдельных строк TreeView