首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

panel上动态增加多个image控件。并且可以随意拖动图片位置?该如何处理

2012-02-21 
panel上动态增加多个image控件。并且可以随意拖动图片位置??panel上动态增加多个image控件。并且可以随意拖

panel上动态增加多个image控件。并且可以随意拖动图片位置??
panel上动态增加多个image控件。并且可以随意拖动图片位置??

[解决办法]
坛子里有过这个问题,搜一下吧
基本思想就是,自己写鼠标事件(move,down之类的),创建image时,将自己的事件赋予image的鼠标事件
[解决办法]
自已再修改:

Delphi(Pascal) code
type  TForm1 = class(TForm)    Panel1: TPanel;    Button1: TButton;    procedure Button1Click(Sender: TObject);  private    { Private declarations }    procedure ImageMouseDown(Sender: TObject; Button: TMouseButton;      Shift: TShiftState; X, Y: Integer);    procedure ImageMouseMove(Sender: TObject; Shift: TShiftState; X,      Y: Integer);    //procedure ImageMouseUp(Sender: TObject; Button: TMouseButton;    //  Shift: TShiftState; X, Y: Integer);  public    { Public declarations }  end;var  Form1: TForm1;implementationvar  OldX, OldY: Integer;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);var  img1, img2: TImage;begin  Panel1.DoubleBuffered := True;  img1 := TImage.Create(Self);  img1.Parent := Panel1;  img1.OnMouseDown := OnMouseDown;  img1.OnMouseMove := ImageMouseMove;  img1.Picture.LoadFromFile('d:\1.jpg');  img2 := TImage.Create(Self);  img2.Parent := Panel1;  img2.OnMouseDown := OnMouseDown;  img2.OnMouseMove := ImageMouseMove;  img2.Picture.LoadFromFile('d:\2.jpg');  img2.Left := 400;end;procedure TForm1.ImageMouseDown(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);begin  OldX := TImage(Sender).Left;  OldY := TImage(Sender).Top;end;procedure TForm1.ImageMouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);begin  Caption := Format('X: %d, Y: %d', [X, Y]);  if ssLeft in Shift then  begin    with TImage(Sender) do    begin      Left := Left + ClientToScreen(Point(X, Y)).X - ClientToScreen(Point(OldX, OldY)).X;      Top := Top + ClientToScreen(Point(X, Y)).Y - ClientToScreen(Point(OldX, OldY)).Y;    end;  end;end;
[解决办法]
用 ImageEN 控件不好吗?

热点排行