关于onmousemove的简单问题,极易拿分!(80分)

  • 主题发起人 主题发起人 rejoise
  • 开始时间 开始时间
R

rejoise

Unregistered / Unconfirmed
GUEST, unregistred user!
我在窗体上有一个Image控件,我想利用它可以移动窗体
在Image的mousemove事件里,我调用窗体的mousemove事件
代码如下:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
; Y: Integer);
begin
form1.OnMouseMove(sender,shift,x,y);
end;
可是程序总是出错,为什么?我实在不知道sender和shift参数怎么设置
我知道有别的办法来实现,但是为什么我这样做为什么不行呢?大虾说说!
有什么别的方法,也告诉我吧,谢谢!!!
 
这样吧!
; private
; ; iX,iY : integer;
; public
; ; { Public declarations }
; end;
var
; Form1: TForm1;
implementation
{$R *.dfm}

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
; Shift: TShiftState; X, Y: Integer);
begin
; iX:=x; //记录鼠标原来的坐标值
; iY:=y;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
; Y: Integer);
begin
;If ssleft in shift then ; ; ; ;//按下鼠标左键拖动
; begin
; ; self.left:=self.left+x-iX;
; ; self.top:=self.top+y-iY;
;end;
end;
;
 
procedure TForm1.Image1MouseDown(Sender: TObject; Shift: TShiftState; X,
; Y: Integer);
begin
; FX:=X;
; FY:=Y
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
; Y: Integer);
begin
; if Shift=ssLeft then
; begin
; ; ;Left:=Left+X-FX;
; ; ;Top:=Top+Y-FY
; end
end;
 
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
; Y: Integer);
begin
; releaseCapture;
; perform(WM_SysCommand,$F012,0);
end;
 
多人接受答案了。
 
后退
顶部