Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Mit Mouse über Image dann Label rot (https://www.delphipraxis.net/29409-mit-mouse-ueber-image-dann-label-rot.html)

Christian18 8. Sep 2004 20:45


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

Nikolas 8. Sep 2004 20:47

Re: Mit Mouse über Image dann Label rot
 
Delphi-Referenz durchsuchenOnMouseLeave

flomei 8. Sep 2004 20:48

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]

Christian18 8. Sep 2004 20:51

Re: Mit Mouse über Image dann Label rot
 
OnLeave gibt es bei Image nicht bei Label ja aber bei Image nicht.

aschne1 8. Sep 2004 20:53

Re: Mit Mouse über Image dann Label rot
 
Hallo

Geht das nicht mit den OnMouseMove Ereignissen der benachbarten Elemente (Form, Panel, etc.)?

Gruss
Armin

himitsu 8. Sep 2004 20:54

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)

Nikolas 8. Sep 2004 20:54

Re: Mit Mouse über Image dann Label rot
 
Wie machst du es denn Rot?
Du könntest auch über die Mauspostion gehen.

Delphi-Quellcode:
if (Form.left+image.left < Mauspos.x) and (Mauspos.x< Form.left+Image.left+image.width) then
// Maus ist drauf

Christian18 8. Sep 2004 20:58

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;

aschne1 8. Sep 2004 21:04

Re: Mit Mouse über Image dann Label rot
 
Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
 If Label1.Font.Color =clRed Then Label1.Font.Color:=clBlack;
end;
Gruss Armin

himitsu 8. Sep 2004 21:10

Re: Mit Mouse über Image dann Label rot
 
Entweder du machst nocheine Prozedure
Delphi-Quellcode:
procedure TFMain.IrgendwasMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Label1.Font.Color:=clBlack;
end;
und gibst diese bei allen anderen Komponenten (incl. Form1) an

Ober eben über einen Timer
Delphi-Quellcode:
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;
es ginge bestimmt auch über die VCL-Control-Messages CM_MOUSEENTER und CM_MOUSELEAV.

[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 23:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz