Einzelnen Beitrag anzeigen

michaelg

Registriert seit: 20. Apr 2008
87 Beiträge
 
#1

Modaler Doppelklick gibt Event an Ursprungsfenster weiter

  Alt 11. Sep 2018, 16:46
Delphi-Version: 10.2 Tokyo
Hallo alle,

mir ist da was ganz komisches aufgefallen.

Ich habe ein Fenster, in dem ein DBGrid ist. Dieses Grid hat ein OnTitleClick-Event, welches eine Umsortierung ausführt und sich merkt, welche Spalte gerade sortiert ist (dazu später).

Nun öffne ich einen modalen Dialog, welcher ganz normal mit Showmodal aufgerufen wird. In diesem modalen Fenster ist ein cxGrid mit einer Liste von Datensätzen
(eine Art Suchfenster). Das Doppelclick-Event auf einer Zeile schliesst den Dialog mit modalresult:=mrok;

Wenn ich nun auf einem bestimmten Datensatz doppelklicke, der genau auf Höhe der Spaltenüberschrift des anderen im Hintergrund liegenden Fensters liegt, wird zusätzlich das
OnTitleclick des anderen Fensters aufgerufen, nachdem der modale Dialog geschlossen wurde.

Ich habe in den Fenstern keinerlei Windows-Events überschrieben oder ähnliches. Der modale Dialog wird auch für die Application erzeugt, nicht für das Form, von dem
es aus aufgerufen wurde, dass heisst eigentlich haben die beiden Fenster gar nichts miteinanders zu tun.

Es ist sehr merkwürdig und sehe eine elementare Problematik. Ich hab schon gelesen, dass ein Doppelklick eigentlich aus vier Mouseevents besteht. Aber die müssten
dann doch abgearbeitet sein, wenn ich wieder in das Ursprungsfenster zurückkomme.

Hab noch kein kleines Beispielprogramm geschrieben, was ich hier posten könnte. Bevor ich mir die Mühe mache, wollte ich fragen, ob es eine Möglichkeit gibt, dem modalen
Dialog oder der Applikation oder Windows zu sagen, dass genau dieses Event abgearbeitet ist, so dass im Ursprungsfenster kein OnTitleclick mehr ankommt. Oder eben irgendwie zu verhindern, dass das Event im Ursprungsfenster auch noch aufgerufen wird.

Weiß jemand was dazu?
  Mit Zitat antworten Zitat