![]() |
OnMouseOver (Labels)
Hallo!
Ich habe heute in einem Programm, das mit delphi gemacht wurde, etwas gefunden was ich auch gerne machen würde. In dem Programm war ein Label (nehme ich mal) und wenn man mit der Maus über den Labe ging, glühte er Gelb auf. Nun meine Frage! Wie macht man soetwas? cYa Citybreaker :D |
Hi,
mit der Eigenschaft "Font" eines Labels kann man die Schrift zuweisen. Schaue dir diese Eigenschaft mal an. Das Ereginis, das du suchst ist "OnMouseMove". Du solltest auch im OnMouseMove des Forms das ganze zurücksetzen... Chris |
Habs ausprobiert, hat aber leider nicht den gewünschten
Effekt erziehlt. Die schrift bleibt ja schwarz und ein gelber Rand um der Schrift erscheint. Trotzdem danke für die Antwort. cYa Citybreaker :D |
Hm... dann versuch mal folgendes (und jetzt mach ich's dir doch komplett):
Delphi-Quellcode:
Chris
{in der Label1.OnMouseMove:}
Label1.Font.Color := clBlue; {in der Form1.OnMouseMove:} Label1.Font.Color := clBlack; |
Danke!
Aber hierbei wechselt die Farbe auch komplett. cYa Citybreaker :D |
|
Achso... ich habe falsch gelesen. Das mit dem glühen wirst du wohl nur folgendermaßen hinbekommen:
So sollte es funktionieren, auch wenn es nicht die schönste Möglichkeit ist... Chris |
Hai citybreaker,
mit Christian Seehases Code aus diesem ![]() habe ich dies gemacht:
Delphi-Quellcode:
Es geht halt nicht mit einem Label sondern mit einem StaticText. Aber damit dürftest Du leben können :lol:
type
TForm1 = class(TForm) StaticText1: TStaticText; private { Private-Deklarationen } procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER; procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} const _clMouseEntered = clyellow; _clMouseLeaved = clBtnFace; { TForm1 } procedure TForm1.CMMouseEnter(var Message: TMessage); var ptWork : TPoint; begin GetCursorPos(ptWork); if WindowFromPoint(ptWork) = StaticText1.Handle then //Maus ist über dem StaticText begin StaticText1.Color := _clMouseEntered; end; end; procedure TForm1.CMMouseLeave(var Message: TMessage); var ptWork : TPoint; begin GetCursorPos(ptWork); if WindowFromPoint(ptWork) <> StaticText1.Handle then //Maus verlässt den StaticText begin StaticText1.Color := _clMouseLeaved; end; end; |
Danke! Jetzt klappts!
cYa Citybreaker :D |
Oder wie wärs damit?
Delphi-Quellcode:
Grüße Tino
public
procedure WNDPROC(var message:TMessage);override; procedure Tform1.WNDPROC(var message:Tmessage); begin if message.LParam=Longint(Label1) then begin if message.Msg=CM_MOUSEENTER then label1.Font.Color:=clred; if message.Msg=CM_MOUSELEAVE then label1.Font.Color:=clblack; end; inherited WNDPROC(message); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz