مهرداد برنامه نویس
پنج شنبه 26 شهریور 1383, 18:42 عصر
چگونه در دلفی برای button1 دو event :
cm_mouselave و cm_mouseenter بسازیم
:evil: :evil: :twisted: :twisted: :?: :!:
مهدی کرامتی
جمعه 27 شهریور 1383, 22:21 عصر
برای انجام اینکار باید یک کامپوننت جدید بنویسید و میبایست آنرا از کامپوننت موردنظر (مثلا TButtun) مشتق کنید:
unit MyButton;
interface
uses
SysUtils,
Classes,
Controls,
StdCtrls,
Windows,
Messages;
type
TMyButton = class(TButton)
private
FOnMouseLeave: TNotifyEvent;
FOnMouseEnter: TNotifyEvent;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
protected
{ Protected declarations }
public
{ Public declarations }
published
{ Published declarations }
property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Barnamenevis.org', [TMyButton]);
end;
{ TMyButton }
procedure TMyButton.CMMouseEnter(var Message: TMessage);
begin
inherited;
if Assigned(FOnMouseEnter) then
FOnMouseEnter(Self);
end;
procedure TMyButton.CMMouseLeave(var Message: TMessage);
begin
inherited;
if Assigned(FOnMouseLeave) then
FOnMouseLeave(Self);
end;
end.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.