![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
На счет того как растянуть и перетащить [D5, Win95/98, WinME, Win2k, WinXP]
Демон © (2002-04-27 17:29:00)Здрасти всем!
Подскажите мне, пожайлуста, как можно перетаскивать форму за какой-нибудь Label и как ее растягивать за этот же Label???
Pat (2002-04-27 18:31:00) [1]Насчет перемещать:
Нажимай Ctrl и тащи :-))
procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const SC_DragMove = $F012;
begin
if (button=mbleft) and (ssCTRL in Shift) then
begin
ReleaseCapture;
perform(WM_SysCommand, SC_DragMove, 0);
end;
end;
PaRL (2002-04-27 18:31:00) [2]PS У Pat"a правильно.
PaRL (2002-04-27 18:28:00) [3]Принцип такой, но это требует доработки, так как во время нажатия кнопки мыши, пользователь не видит какой будет форма. Удачи.
procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
GetCursorPos(pt);
Application.ProcessMessages;
Label1.Caption := IntToStr(pt.X) + " " + IntToStr(pt.Y);
a := pt;
end;
procedure TForm1.Label1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var k, m : integer;
begin
GetCursorPos(pt);
Application.ProcessMessages;
k := pt.X - a.X;
m := pt.Y - a.Y;
Form1.Height := Form1.Height + k;
Form1.Width := Form1.Width + m;
end;
Pat (2002-04-27 18:22:00) [4]Примерный вариант:
var
Form1: TForm1;
x0,y0:integer;
move:boolean=false;
procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
move:=true;
end;
procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if move then
begin
width:=width+x-x0;
height:=height+y-y0;
x0:=x;
y0:=y;
end;
end;
procedure TForm1.Label1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
move:=false;
end;
Демон (2002-04-27 18:09:00) [5]Ну дак скажи как?... Плиз!
PaRL (2002-04-27 18:08:00) [6]Конечно понял.
Демон (2002-04-27 17:46:00) [7]Ну короче нажимаеш левой кн мыши на лейбл (не отпуская), затем смещаешь курсор мыши куд-нибудь, а заним правый нижний угол формы растягивается... Понял?
PaRL (2002-04-27 17:32:00) [8]Я че то не понял, как это "растягивать за Label" ???