PDA

View Full Version : چگونه در دلفی ؟



مهرداد برنامه نویس
پنج شنبه 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.