САЙТ УЧИТЕЛЯ ИНФОРМАТИКИ |
|||||||||||||||
МОУ СОШ №3 г. Осташков Тверская обл. | |||||||||||||||
|
Мини-проекты в Delphi Мини- проекты в Delphi Проект «Перетаскивание фигур» Для того, чтобы перетаскивать объекты по экрану, существует возможность использования событий.
Расположим на форме несколько объектов Shape (фигура) разных размеров и формы. x0,y0:integer; Вторая drag будет разрешать перемещение, если фигура выбрана. procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin x0:=X;y0:=Y; drag:=true; end; Так же для onMouseUp: procedure TForm1.Shape1MouseUp(Sender: TObject;Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if drag then begin with TShape(Sender) do begin Left:=Left+X-x0; Top:=Top+Y-y0; end; end; drag:=false; end; И для onMouseMove: procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if drag then begin with TShape(Sender) do begin Left:=Left+X-x0; Top:=Top+Y-y0; end; end; end; Эта процедура изменяет координату верхнего левого угла фигуры в соответствии с положением мыши при нажатой левой кнопки, т. е. пока она не отпущена.
|
||||||||||||||