Du mußt dein Label durch ein TStaticText ersetzen, da ich das
Handle brauche und TLabel ist von TGraficControl abgeleitet und nicht von TWinControl und besitzt somit kein
Handle. Es unterscheidet sich in der Handhabung aber nicht von einem TLabel.
Delphi-Quellcode:
type
TForm1 = class(TForm)
StaticText1: TStaticText;
private
{ Private-Deklarationen }
procedure CMMOUSEENTER(var msg: TMessage); message CM_MOUSEENTER;
procedure CMMOUSELEAVE(var msg: TMessage); message CM_MOUSELEAVE;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.CMMOUSEENTER(var msg: TMessage);
var
pt : TPoint;
begin
GetCursorPos(pt);
if WindowFromPoint(pt) = StaticText1.Handle then
begin
StaticText1.Font.Color := clBlue;
StaticText1.Font.Style := [fsUnderline];
end;
end;
procedure TForm1.CMMOUSELEAVE(var msg: TMessage);
var
pt : TPoint;
begin
GetCursorPos(pt);
if WindowFromPoint(pt) <> StaticText1.Handle then
begin
StaticText1.Font.Color := clBlack;
StaticText1.Font.Style := [];
end;
end;
Warum einfach, wenn es umstaändlich geht. Habe gerade gesehen ab D6 gibt es bei TLabel das Ereignis OnMouseEnter und OnMouseLeave. Brauchst du also nicht nachrüsten und kannst dein Label nehmen.