procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
begin
Image1.Cursor := crHandPoint;
Image1.Perform(WM_LButtonUp, 0, 0)
end;
end;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
begin
Image1.Cursor := crHandPoint;
Image1.Perform(WM_LButtonUp, 0, 0)
end;
end;
你可以自定義一個image類,再在image中加上兩個事件:
如:
myimage=class(image)
prodect
procedure mouseenter(var msg:tmessage);message cm_mouseenter;
procedure mouseleave(var msg:tmessage);message cm_mouseleave;
end;
.
.
.
.
.
var image1:myimage;.
.
.
.
.
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Controls, Forms, Dialogs, ExtCtrls;type
TForm1 = class(TForm)
Image1: TImage;
private
{ Private declarations }
public
{ Public declarations }
procedure CMMouseEnter(var Message: TMessage); message CM_MouseEnter;
procedure CMMouseLeave(var Message: TMessage); message CM_MouseLeave;
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.CMMouseEnter(var Message: TMessage);
begin
if TObject(Message.LParam) = Image1 then
Image1.Cursor := crHandPoint;
end;procedure TForm1.CMMouseLeave(var Message: TMessage);
begin
if TObject(Message.LParam) = Image1 then
Image1.Cursor := crDefault;
end;end.
TControl(Sender).Cursor := crCross;
SetCaptureControl( TControl(Sender) );
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
TControl(Sender).Cursor := crHandPoint;
end;procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Image1.Cursor := crDefault;
end;
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, ToolWin, ExtCtrls;type
TForm1 = class(TForm)
Panel1: TPanel;
procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Panel1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}{ TForm1 }procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
SetCaptureControl( nil );
TControl(Sender).Cursor := crCross;
SetCaptureControl( TControl(Sender) );
end;procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
TControl(Sender).Cursor := crDefault;
end;end.// Unit1.DFM
object Form1: TForm1
Left = 152
Top = 181
BorderStyle = bsSingle
Caption = 'Form1'
ClientHeight = 98
ClientWidth = 365
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Panel1: TPanel
Left = 30
Top = 46
Width = 113
Height = 31
Caption = 'Panel1'
TabOrder = 0
OnMouseDown = Panel1MouseDown
OnMouseUp = Panel1MouseUp
end
end