![]() |
Eigene Mouseevents werden zu oft ausgeführt
Hallo Leute ich habe ein Problem mit den Events OnMouseEnter und OnMouseLeave bei einem TPanel.
Und zwar habe ich eine Klasse von TPanel abgeleitet und werte die Messages CM_MOUSEENTER und CM_MOUSELEAVE aus. Es funktioniert soweit ganz gut, nur entsteht nun das Problem, dass der Code in dem Event viel zu oft ausgeführt wird. Wenn ich z.B. ein Showmessage hineinsetze, bekomme ich z.B. beim Enter unendlich viele Message-Boxen, da hilft dann nurnoch Programm killen. So sollte das ja nicht sein, der Code sollte nur einmal beim MouseEnter ausgeführt werden. Ich habe auch schon andere, fertige Komponenten ausprobiert, da tritt jedoch dasselbe auf. Wäre schön, wenn jemand wüsste, woran das liegt :) Vielen Dank im Vorraus BaYeR |
Re: Eigene Mouseevents werden zu oft ausgeführt
das ganze ist soweit logich. Denn wenn du ein Showmessage aufrufst kommt ein MouseLeave. Wenn die Messagebox dann wieder weg ist und die Maus sich über deinem Panel befindet betritt sie das Panel erneut (MouseEnter) und so geht das immer weiter.
|
Re: Eigene Mouseevents werden zu oft ausgeführt
hm, in meinen augen ist das nicht logisch, da sich die Boxen nicht über dem Panel befinden. Ich kann auch die Maus über dem Panel ruhen lassen und werde von Message-Boxen erschlagen...
//edit: ok, es lag wirklich an den Message-Boxen, nun funktioniert alles bis auf das Leave-Event^^ Danke für deine Hilfe :) |
Re: Eigene Mouseevents werden zu oft ausgeführt
Hallo BaYeR,
jedes Control, das eine CM_MOUSEENTER- oder CM_MOUSELEAVE-Nachricht empfängt, leitet diese an sein übergeordnetes Control weiter. Am Ende dieser Kette steht in der Regel das Formular. Wenn dein Panel also mehrere Controls enthält, wird jede Mausbewegung von einem Control zum einem anderen Nachrichten über dein Panel nach "oben" verschicken. Gruß Hawkeye |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 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