![]() |
|
|
#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. |