![]() |
Re: OnMouseEnter/-Over/-Leave für beliebige Komponente?
Du kannst ja während des Veränderns des VST durch/über eine Variable ein weiteres "Verändern" blocken.
|
Re: OnMouseEnter/-Over/-Leave für beliebige Komponente?
Hm und wie z.B.? Ich hab schon versucht, in dad "VST_Minimize" eine Bedingung einzubauen (z.B. if width = 400), aber auch das klappt nicht...
|
Re: OnMouseEnter/-Over/-Leave für beliebige Komponente?
Weiß auch nicht genau. Vielleicht in der Case-Anweisung:
Delphi-Quellcode:
vielleicht kommen zu viele Messages hintereinander. Aber ich vermute grad fast, dass dies das Problem nicht löst.
if not MouseMsgOnWork then //Feld der Klasse
begin MouseMsgOnWork:=true; try case msg.msg of ... end; finally MouseMsgOnWork:=false; end; end; |
Re: OnMouseEnter/-Over/-Leave für beliebige Komponente?
Zitat:
|
Re: OnMouseEnter/-Over/-Leave für beliebige Komponente?
Dann würde mir noch einfallen, einen Timer zu benutzen (ist nicht so schön, verhindert aber gleich generell ein Flackern) Damit schaffst du dir eine Art zeitliche Hysterese.
Delphi-Quellcode:
Edit: Ahh, das ist auch noch nicht vollständig. Du musst dir trotzdem bei jeder MEssage merken, welcher Zustand gerade aktuell ist, und den dann im Timer-Ereignis schließlich einstellen.
type ...
... Timer:TTimer; private ... MsgMouseOnWork:Boolean; //mit false initialisieren ... procedure VST_Expand; procedure VST_Minimize; procedure VST_StartTimer; public { Public-Deklarationen } end; ... procedure TForm2.VST_StartTimer; begin MsgMouseOnWork:=true; Timer.enabled:=true; end; procedure TForm2.TimeronTimer(...); //Timerereignis begin MsgMouseOnWork:=false; Timer.enabled:=false; end; procedure TForm2.VST_Expand; begin if not MsgMouseOnWork then begin VST.Align := alNone; VST.Width := 400; VST.Height := Panel2.Height -10; ---> VST.Parent := Form2; <--- VST_startTimer; end; end; procedure TForm2.VST_Minimize; begin if not MsgMouseOnWork then begin ---> VST.Parent := Panel2; <--- VST.Align := alClient; VST_starttimer; end; end; |
Re: OnMouseEnter/-Over/-Leave für beliebige Komponente?
Ja, so habe ich es ja bisher auch... Aber die Sache mit einem direkten MouseOver wäre ja etwas sauberer^^
|
Re: OnMouseEnter/-Over/-Leave für beliebige Komponente?
Für mich ist halt grad schwer das Problem zu entdecken, weil es ja in D7 funktioniert.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:34 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