![]() |
Mit Mouse über Image dann Label rot
Hallo,
ich habe auf meiner Form ein Image und ein Label. wenn ich über das Image mit der Mouse gehe, dann soll das Label rot werden und wenn ich wieder runter gehe, dann wieder schwarz. Wie man das Label rot bekommt weiß ich habe leider nicht wie man es wieder schwarz bekommt. Wie bekomme ich es wieder schwarz? Mit freundlichen Grüßen Christian18 |
Re: Mit Mouse über Image dann Label rot
|
Re: Mit Mouse über Image dann Label rot
Änder im OnMouseLeave (heisst das jetzt so? keine lust nachzugucken *g*) Event des Image doch wieder die Farbe...
MfG Florian :hi: [edit] Nu war da wieder einer schneller... nenene... ;) [/edit] |
Re: Mit Mouse über Image dann Label rot
OnLeave gibt es bei Image nicht bei Label ja aber bei Image nicht.
|
Re: Mit Mouse über Image dann Label rot
Hallo
Geht das nicht mit den OnMouseMove Ereignissen der benachbarten Elemente (Form, Panel, etc.)? Gruss Armin |
Re: Mit Mouse über Image dann Label rot
Leave???
OnMouseMove ist ja, wenn sich die Mouse darüber hinwegbewegt. wüste nicht, dass es das andere gibt. Also du könntest allen anderen Komponenten (oder zumindestens den Umliegenden) auch ein onMouseMove-Ereignis zuweisen und dort wieder die Farbe zurücksetzen, oder du nimmst einen Timer und fragst dort ab, ob die Maus (nicht) drüber ist und machst alles dort drin. (ein Interval von 100ms sollte ausreichen) |
Re: Mit Mouse über Image dann Label rot
Wie machst du es denn Rot?
Du könntest auch über die Mauspostion gehen.
Delphi-Quellcode:
// Maus ist drauf
if (Form.left+image.left < Mauspos.x) and (Mauspos.x< Form.left+Image.left+image.width) then
|
Re: Mit Mouse über Image dann Label rot
Ich habe keine Idee wie ich das machen soll.
Rot mache ich den Label mit:
Delphi-Quellcode:
procedure TFMain.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin Label1.Font.Color:=clRed; end; |
Re: Mit Mouse über Image dann Label rot
Delphi-Quellcode:
Gruss Armin
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin If Label1.Font.Color =clRed Then Label1.Font.Color:=clBlack; end; |
Re: Mit Mouse über Image dann Label rot
Entweder du machst nocheine Prozedure
Delphi-Quellcode:
und gibst diese bei allen anderen Komponenten (incl. Form1) an
procedure TFMain.IrgendwasMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin Label1.Font.Color:=clBlack; end; Ober eben über einen Timer
Delphi-Quellcode:
es ginge bestimmt auch über die VCL-Control-Messages CM_MOUSEENTER und CM_MOUSELEAV.
procedure TForm1.Timer1Timer(Sender: TObject);
var p: TPoint; begin p := Image1.ScreenToClient(Mouse.CursorPos); if (p.X >= 0) and (p.Y >= 0) and (p.X < Image1.Width) and (p.Y < Image1.Height) then Label1.Font.Color := clRed Else Label1.Font.Color := clBlack; end; [add] @aschne1 du brauchst dabei keine If-Abfrage machen, soweit ich weiß wird intern auch (schon) Eine gemacht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 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 by Thomas Breitkreuz