![]() |
Gegenteil von OnMouseMove?
Hallo,
mit dem Ereignis OnMouseMove lasse ich ein Label sichtbar machen wenn der Mauszeiger über ein bestimmtes Icon fährt. Was ist das Gegenteil von OnMouseMove, welches dann auftritt wenn der Mauszeiger sich über diesen Icon nicht befindet? Bist jetzt hab ich das so gemacht:
Delphi-Quellcode:
Also wenn der Mauszeiger wieder auf dem Formular war wurde Label wieder versteckt.
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin Label1.Visible:=True; end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Label1.Visible:=False; end; Wie mache ich das aber anders, also professionell? Weil mein Weg scheint mich irgendwie unprofessionell zu sein. Danke! |
Re: Gegenteil von OnMouseMove?
|
Re: Gegenteil von OnMouseMove?
Ein Gegenteil von OnMouseMove gibt es nicht. Es wird immer aufgerufen wenn sich die Maus bewegt und hat nichts damit zu tun ob die Maus den Bereich über einer Komponente betritt oder verlässt.
Was für dich interessant sein müsste wären die Ereignisse OnMouseEnter und OnMouseLeave. Wenn diese nicht vorhanden sind kann man diese durch abfangen der entsprechenden Messages auch nachrüsten. |
Re: Gegenteil von OnMouseMove?
Schau dir mal OnMouseLeave von TLabel an
MfG |
Re: Gegenteil von OnMouseMove?
Gibt es nicht. Du könntest aber MouseEnter und MousLeave verwenden
|
Re: Gegenteil von OnMouseMove?
mkinzler - :wiejetzt:
Also in meiner TDE-Version gibts dieses Ereignis 8) MfG |
Re: Gegenteil von OnMouseMove?
Zitat:
Lässt sich das Problem vllt irgendwie anders lösen? :gruebel: |
Re: Gegenteil von OnMouseMove?
Zitat:
|
Re: Gegenteil von OnMouseMove?
Und wenn du es einfach so lässt wie du es schon hast?
Was spricht dagegen? - solange es funktioniert... |
Re: Gegenteil von OnMouseMove?
Zitat:
|
Re: Gegenteil von OnMouseMove?
Zitat:
![]() ![]() Grüße, Matze Edit: Es heißt "CM_" und nicht "WM_" wie Deddy unter mir korrekt schreibt. ![]() Edit 2: Wobei im MSDN steht "WM_". Naja irgendwas + "_MOUSELEAVE" eben. :stupid: |
Re: Gegenteil von OnMouseMove?
Leite doch eine Klasse von TImage ab und reagiere darin auf CM_MOUSEENTER und CM_MOUSELEAVE (nur so eine Idee).
|
Re: Gegenteil von OnMouseMove?
Zitat:
Ich bleibe lieber bei meiner Lösung. :thumb: |
Re: Gegenteil von OnMouseMove?
Oder wechsel auf eine neuere Delphiversion
|
Re: Gegenteil von OnMouseMove?
Schau dir
![]() ![]() MfG BAMatze |
Re: Gegenteil von OnMouseMove?
Zitat:
|
Re: Gegenteil von OnMouseMove?
Zitat:
|
Re: Gegenteil von OnMouseMove?
Wieso, TDE ist kostenlos und Du darfst als Einzelperson sogar kommerzielle Programme damit schreiben. Das einzige Manko ist, dass Du keine Fremdkomponenten in der IDE installieren kannst, nutzen kannst Du sie per Code aber trotzdem.
|
Re: Gegenteil von OnMouseMove?
Zitat:
|
Re: Gegenteil von OnMouseMove?
Zitat:
|
Re: Gegenteil von OnMouseMove?
Diese kannst du, wie erwähnt verwenden, wenn du diese manuell instantiierst. Oder Z.B. Delphi 7 als Formualeditor verwendest ( mit Experte "Components To Code" der GEXperts kannst du dann das Formular in Code wandeln, welchen du in FormCreate einfügen kannst).
|
Re: Gegenteil von OnMouseMove?
Zitat:
|
Re: Gegenteil von OnMouseMove?
Warum, dort hast du die ganze VCL ( im Gegensatz zu den PEs) und die neuen Feature der VCL/IDE/Sprache.
|
Re: Gegenteil von OnMouseMove?
Zitat:
![]() ![]() TImage nun mal ja nicht. Kannst aber das TImage auf ein TPanel packen.
Delphi-Quellcode:
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin if (X < 0) or (Y < 0) or (X > TPanel(Sender).Width) or (Y > TPanel(Sender).Height) then begin ReleaseCapture; TPanel(Sender).Caption := 'OnMouseLeave'; end else begin SetCapture(TPanel(Sender).Handle); TPanel(Sender).Caption := 'OnMouseEnter'; end; TPanel(Sender).SetFocus; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:08 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