PDA

View Full Version : تعریف صدا به یک رویداد



هنرسبز
یک شنبه 09 مرداد 1384, 15:59 عصر
درموقع تعریف یک صدا به یک رویداد OnMouseMove باحرکت موس روی Buttonصدافقط یکبارپخش
شود
باتشکر

vcldeveloper
دوشنبه 10 مرداد 1384, 03:24 صبح
بهترین راه نوشتن یه کامپوننت از TButton هست که رویداد های OnMouseEnter و OnMouseLeave هم داشته باشه:


unit ActiveButton;
interface
uses
Messages, SysUtils, Classes, Controls, StdCtrls;
type
TActiveButton = class(TButton)
private
FOnMouseEnter : TNotifyEvent;
FOnMouseLeave : TNotifyEvent;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage);message CM_MOUSELEAVE;
protected
procedure MouseEnter;
procedure MouseLeave;
published
property OnMouseEnter : TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
property OnMouseLeave : TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TActiveButton]);
end;
procedure TActiveButton.CMMouseEnter(var Message: TMessage);
begin
MouseEnter;
end;
procedure TActiveButton.CMMouseLeave(var Message: TMessage);
begin
MouseLeave;
end;
procedure TActiveButton.MouseEnter;
begin
if (not (csDesigning in ComponentState))
and Assigned(FOnMouseEnter)
and Enabled then
FOnMouseEnter(Self);
end;
procedure TActiveButton.MouseLeave;
begin
if (not (csDesigning in ComponentState))
and Assigned(FOnMouseLeave)
and Enabled then
FOnMouseLeave(Self);
end;
end.