如题~~~
就如同ACDSee里,看超过屏幕大小的图片时,可以用鼠标拖动观看。
请问此功能怎么样可以比较简单的实现。

解决方案 »

  1.   

    把image放在scrollBox里。拖动image时在box里移动就可以了。
      

  2.   

    转个贴给你。
    [url=http://topic.csdn.net/t/20050620/15/4094232.html]
      

  3.   

    http://topic.csdn.net/t/20050620/15/4094232.html
      

  4.   

    把图片放到一个panel里,然后在图片的MouseDown事件里
      ReleaseCapture;
      Panel1.Perform(WM_SYSCOMMAND, $F012, 0);
      

  5.   

    简单实用,别的方法代码肯定会比这个长,可以在TImage的OnMouseMove中用SetBounds来做到。
      

  6.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls;type
      TForm1 = class(TForm)
        Image1: TImage;
        procedure FormCreate(Sender: TObject);
        procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
          Y: Integer);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    with TPanel.Create(Self) do begin
        Name := 'ImgParentPanel';
        Parent := Self;
        Left := Image1.Left;
        Top := Image1.Top;
        BevelOuter := bvNone;
        Caption := '';
        AutoSize := True;
        Show;
    end;
    Image1.Parent := TWinControl(Self.FindComponent('ImgParentPanel'));
    Image1.Picture.Assign(Application.Icon);
    Image1.AutoSize := True;
    end;
    procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      ReleaseCapture;
      TImage(Sender).Parent.Perform(WM_SysCommand, $F012, 10);
    end;end.