![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перетаскивание [D2005, XP]
картограф © (2005-10-29 19:32:00)Здравствуйте!
Как сделать так, что бы геометрическую фигуру можно было бы перетаскивать и когда ее перетащили бы в определенную область( на другую фигуру) и отпустили кнопку мыши, произошло какое-либо событие(например запись в МЕМО). Буду вдвойне рад если будут примеры кода...
картограф (2005-10-30 08:39:00) [1]Большое спасибо! Одним белым пятном в моих знаниях о Delphi стало меньше!
SergProger (2005-10-30 01:49:00) [2]Не понял, о какой фигуре идёт речь, покажу на примере TImage:
var
Form1: TForm1;
DownButton: Boolean;
LastPoint: TPoint;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.DoubleBuffered:=True;
Image1.Canvas.Brush.Color:=clYellow;
Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);
DownButton:=False;
end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
LastPoint:=Point(X,Y);
DownButton:=True;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
If DownButton then begin
Image1.Left:=Image1.Left+X-LastPoint.X;
Image1.Top:=Image1.Top+Y-LastPoint.Y;
end;
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
DownButton:=False;
Label1.Caption:=IntToStr(Image1.Left)+', '+IntToStr(Image1.Top);
end;