Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi 11: Kombination von DblClick und Modalresult führt zu Fokus-Fehlermeldung (https://www.delphipraxis.net/209754-delphi-11-kombination-von-dblclick-und-modalresult-fuehrt-zu-fokus-fehlermeldung.html)

AuronTLG 17. Jan 2022 15:31

Delphi 11: Kombination von DblClick und Modalresult führt zu Fokus-Fehlermeldung
 
Moin,

ich habe letzte Woche mal Delphi 11 installiert und gehe gerade meine Programme durch, um zu gucken, was nun kaputt ist, und meine momentane Baustelle ist ein neuer Fehler:

Ich habe eine Standardkonstruktion für eine Datensatzauswahl, bei der per ShowModal eine Auswahlmaske mit JvDBUltimGrid geöffnet wird, welche entweder durch Klick auf einen Button oder direkt Doppelklick auf einen Datensatz per ModalResult = mrOK wieder geschlossen wird.

Seit Delphi 11 kommt es dabei, wenn man das Ganze per Doppelklick macht, zu der Fehlermeldung "Deaktiviertes oder unsichtbares Fenster kann den Fokus nicht erhalten".
Ich habe mal ein bisschen rumgesucht und habe dabei u.A. das hier gefunden, nur gab es diesen Fehler vor Delphi 11 bei mir eben noch nicht.

Ich habe meines Wissens den neusten Patch drauf und im Quality Management finde ich jetzt auch nichts, was wirklich dazu passt, was mich aber etwas verwundert, da die Konstruktion eigentlich ziemlich gewöhnlich ist.
Klar kann man das umgehen, indem man das Setzen des ModalResults z.B. in einen 100ms-Timer packt, nur wäre das zum einen Gepfusche, und zum anderen ziemlich aufwendig umzubauendes Gepfusche.
Daher wollte ich erstmal gucken, ob hier vielleicht wer noch mehr Infos hat.

himitsu 17. Jan 2022 17:33

AW: Delphi 11: Kombination von DblClick und Modalresult führt zu Fokus-Fehlermeldung
 
* Debugger benutzen
* bzw. in die DoubleClick-Methode der Komponente gucken und schauen was da passiert.

Wir hatten das mal mit einem DevExpressButton, welcher nach dem OnClick-nochmal auf sich selbst zugreifen wollte, was schief lief, wenn man da schon die Form freigibt (Free).
Via Delphi-Referenz durchsuchenAbort kann man sowas teilweise unterbinden, falls kein Try-Finally drumrum ist und im Finally der Zugriff passiert.



Delphi-Quellcode:
TThead.ForceQueue(nil, procedue
  begin
    MachWasAberBisslSpäter;
  end);
statt Timer oder PostMessage

AuronTLG 18. Jan 2022 09:22

AW: Delphi 11: Kombination von DblClick und Modalresult führt zu Fokus-Fehlermeldung
 
So, habe die Ursache gefunden:
Ich hatte die Vermutung, dass es nicht Delphi 11 ist, sondern die JVCL, welche ich dabei mit geupdated hatte.
Daher habe ich mal die JvDBGrid.pas per Winmerge mit der älteren Version verglichen und Bingo, es gab Änderungen am Mouse-Up-Event, welche genau das Problem auslösen.
Schmeiße ich die alte JVDBGrid.pas bei mir ins Projekt, damit diese geladen wird, funktioniert alles wieder.
Damit habe ich dann wohl einen akzeptablen Workaround und was zu melden für die Jedis...


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 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