Форум: "WinAPI";
Текущий архив: 2002.11.18;
Скачать: [xml.tar.bz2];
ВнизПеретаскивать за панель. Найти похожие ветки
← →
vidiv (2002-10-08 11:46) [0]Народ, как сделать, чтобы форму можно было перетаскивать за панель. и вообще почему если я ставлю на форму winсонтрол, то сообщени WM_NCHITTEST к этому участку не применяется?
← →
Ученик (2002-10-08 12:29) [1]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;
← →
MBo (2002-10-08 12:54) [2]по второму вопросу - потому что это уже область wincontrol-а, а не главного окна
← →
AlexT1000 (2002-10-08 17:04) [3]наслаждайся
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;
← →
vidiv (2002-10-09 03:42) [4]А я сделал вот так(только не смейтесь):
У панели
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;
Вот. Всем спасибо!!!
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.11.18;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c