S
sundayyoung
Unregistered / Unconfirmed
GUEST, unregistred user!
图 象 漫 游 是 指 不 用 滚 动 条, 通 过 键 盘 或 者 鼠 标 控 制 图 象 的 移 动,
从 而 在 较 小 的 显 示 区 域 内 可 以 浏 览 图 象 的 任 何 部 分。
我将Image放在一个Panel上,并设定TImage 控 件 的AutoSize属性 True,Left 属性为0,
Top属性为0。
我的代码如下:(但运行后鼠标移到图象上图象就不见了,大家看看错在哪里?谢谢)
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
Image1: TImage;
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
var
iX0,iY0: integer;
implementation
{$R *.DFM}
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
iX0:=X;
iY0:=Y;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var iDeltaX,iDeltaY:integer;
begin
if ssLeft in Shift then
iDeltaX:= X - iX0;
iDeltaY:= Y- iY0;
if iDeltaX<>0 then
Image1.Left:=Image1.Left+iDeltaX;
if iDeltaY<>0 then
Image1.Top:=Image1.Top+iDeltaY;
end;
end.
从 而 在 较 小 的 显 示 区 域 内 可 以 浏 览 图 象 的 任 何 部 分。
我将Image放在一个Panel上,并设定TImage 控 件 的AutoSize属性 True,Left 属性为0,
Top属性为0。
我的代码如下:(但运行后鼠标移到图象上图象就不见了,大家看看错在哪里?谢谢)
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
Image1: TImage;
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
var
iX0,iY0: integer;
implementation
{$R *.DFM}
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
iX0:=X;
iY0:=Y;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var iDeltaX,iDeltaY:integer;
begin
if ssLeft in Shift then
iDeltaX:= X - iX0;
iDeltaY:= Y- iY0;
if iDeltaX<>0 then
Image1.Left:=Image1.Left+iDeltaX;
if iDeltaY<>0 then
Image1.Top:=Image1.Top+iDeltaY;
end;
end.