![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Я поместил Panel на край формы (panel1.align:=alleft). Что надо написать чтобы когда я нажимаю на panel и двигаю мышью изменялся размер формы?
|
|
#2
|
||||
|
||||
|
Можно написать просто, мышь на панели:
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Panel1.Width := 300; или Height - если не (panel1.align:=alleft) end; При нажатии на панель: procedure TForm1.Panel1Click(Sender: TObject); begin Panel1.Width := 255; end; Ну и соответственно когда мышь на форме, и т.д. Просто вопрос, двигаю мышью? по каким событиям должно отлавливаться? Или ты хочешь медленно передвигая мышь по чему либо изменять его размер? Да, и если будет MouseMove и Click то последним сработает MouseMove можно даже не заметить изменения. Последний раз редактировалось Dimanus, 06.10.2007 в 20:17. |
|
#3
|
||||
|
||||
|
Добавь код:
Код:
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
begin
ReleaseCapture;
SendMessage(Form1.Handle, WM_NCLBUTTONDOWN, Windows.HTLEFT, 0);
SendMessage(Form1.Handle, WM_NCLBUTTONDOWN, Windows.HTTOP, 0);
end;
end; |
|
#4
|
||||
|
||||
|
Можно сделать еще красивие:
Код:
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
begin
ReleaseCapture;
SendMessage(Form1.Handle, WM_NCLBUTTONDOWN, Windows.HTBOTTOMRIGHT, 0);
//или:
//SendMessage(Form1.Handle, WM_NCLBUTTONDOWN, Windows.HTTOPLEFT, 0);
end;
end; |
|
#5
|
|||
|
|||
|
Надо так как в окнах винды. Внизу и по краям есть полоски. Если на одну из них навести мышь - появятся стролочки. Если подвигать нажимая на стрелочки - размер формы будет меняться. Мне надо также.
|
|
#6
|
||||
|
||||
|
Вот код, показывает стрелки только с левой строны и сверху, справа и снизу дамаю сам допишешь:
Код:
procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if X=Button1.Height div 10 div Button1.Height then Button1.Cursor:=crSizeWE else Button1.Cursor:=crDefault; if Y=Button1.Width div 10 div Button1.Width then Button1.Cursor:=crSizeNS; if X=Button1.Height div 10 div Button1.Height then Button1.Cursor:=crSizeWE else Button1.Cursor:=crDefault; end; end. |