![]() |
|
#1
|
|||
|
|||
![]() Простите за возможный повтор, но срочно нужно.
Как сделать Drag and Drop например TShape по форме? |
#2
|
|||
|
|||
![]() Свойства формы:
Код:
DockSite True; DragKind dkDock; DragMode dmAutomatic Свойства TShape Код:
DragKind dkDock; DragMode dmAutomatic Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#3
|
|||
|
|||
![]() Не пойдет. Когда перетаскиваешь, элемент появляется в новом окне
|
#4
|
||||
|
||||
![]() Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class(TForm) Shape1: TShape; procedure Shape1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Shape1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Shape1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormCreate(Sender: TObject); private { Private declarations } IsMouseDown: Boolean; SaveX: Integer; SaveY: Integer; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin IsMouseDown:=True; SaveX:=X; SaveY:=Y; end; procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if IsMouseDown then begin Shape1.Left:=Shape1.Left-(SaveX-X); Shape1.Top:=Shape1.Top-(SaveY-Y); end; end; procedure TForm1.Shape1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin IsMouseDown:=False; end; procedure TForm1.FormCreate(Sender: TObject); begin IsMouseDown:=False; end; end. http://data.cod.ru/79124 Пишу программы за еду. __________________ |
#5
|
|||
|
|||
![]() Благодарен за все варианты, но нужно перетаскивание именно по технологии Drag and Drop
|
#6
|
|||
|
|||
![]() Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class(TForm) shp1: TShape; procedure FormDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin TShape(Source).left:=x; TShape(Source).Top:=y; Accept:=True; end; end. |