需要实现能将图片拖到屏幕的任何一个位置的功能,请问应该怎样做

解决方案 »

  1.   

    先将图片放到一个窗体中(将窗体大小调为图片大小),然后在image的mousedown,mousemove事件中加入移动窗体的代码就可以了.
      

  2.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls;type
      TForm1 = class(TForm)
        Image1: TImage;
        procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
          Y: Integer);
        procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
        procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      XPos,YPos:integer;   //记录鼠标按下时位置
      CanMove:boolean; //判断是否可以移动
    implementation{$R *.dfm}procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
        if  CanMove then
            begin
                    Image1.Left:=Image1.Left+X-XPos;
                    Image1.Top:=Image1.Top+Y-YPos;
            end;
    end;procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
        if (Button=mbLeft) then
            begin
                    CanMove:=true;
                    XPos:=X;
                    YPos:=Y;
            end;
    end;procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
        if (Button=mbLeft) then
            CanMove:=false;
    end;end.
      

  3.   

    你将图片放到一个ToolBar中,再将TooBar放到ControlBar中,岂不是更简单。