![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перетаскивать за панель. [D5, Win95/98]
vidiv © (2002-10-08 11:46:00)Народ, как сделать, чтобы форму можно было перетаскивать за панель. и вообще почему если я ставлю на форму winсонтрол, то сообщени WM_NCHITTEST к этому участку не применяется?
vidiv (2002-10-09 03:42:00) [1]А я сделал вот так(только не смейтесь):
У панели
var mv:boolean; movX,movY:integer;
procedure TForm1.HeadMouseDown("--"--"--"--");
begin
if button=mbLeft then
begin
mv:=true;
movX:=X;
movY:=Y;
end;
end;
procedure TForm1.HeadMouseUp("--"--"--"--");
begin
mv:=false;
end;
procedure TForm1.HeadMouseMove("--"--"--"--");
begin
if mv then
begin
if x<>movX then left:=left+(X-movX);
if y<>movY then top:=top+(Y-movY);
{и здесь прописал, чтобы за края экрана форма не выходила}
end;
end;
Вот. Всем спасибо!!!
AlexT1000 (2002-10-08 17:04:00) [2]наслаждайся
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
SC_DRAGMOVE : Longint = $F012;
begin
if Button <> mbRight then
begin
ReleaseCapture;
SendMessage(Handle, WM_SYSCOMMAND, SC_DRAGMOVE, 0);
end;
end;
MBo (2002-10-08 12:54:00) [3]по второму вопросу - потому что это уже область wincontrol-а, а не главного окна
Ученик (2002-10-08 12:29:00) [4]procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then begin
ReleaseCapture;
SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0)
end
end;