Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Fehlermeldung beim Schließen einer Form mit DblClick auf jvDBGrid in Delphi 11 (https://www.delphipraxis.net/210861-fehlermeldung-beim-schliessen-einer-form-mit-dblclick-auf-jvdbgrid-delphi-11-a.html)

TKanne 22. Jun 2022 22:06

Delphi-Version: 11 Alexandria

Fehlermeldung beim Schließen einer Form mit DblClick auf jvDBGrid in Delphi 11
 
Hallo zusammen,

ich lese ja hier meist nur mit und meistens finde ich ja dann auch Lösungen zu meinen Problemchen ;-)
Aber heute muss ich doch mal was fragen.

Ich habe folgendes Problem:

Ich habe in diversen Fenstern ein jvDBGrid zur Auswahl eines Datensatzes aus einer Tabelle. Für das Auswählen gibt es einen Button "Übernehmen".
Im OnClick-Ereignis des Buttons werden noch Variablen ein paar Werte zugewiesen und dann das Fenter geschlossen, mit Close oder alternativ mit ModalResult = mrOK.

Dem OnDblClick-Ereignis des jvDBGrid ist dieselbe Routine zugewiesen wie dem Button.

Wenn ich das Fenster über den Button schließe, ist alles in Ordnung. Wenn ich allerdings das Fenster per DblClick auf das jvDBGrid schließe, schließt sich das Fenster zwar auch , aber es kommt noch eine Fehlermeldung:
"deaktiviertes oder unsichtbares fenster kann den fokus nicht erhalten"

Ich hatte davor Delphi XE7, da hat alles funktioniert. Nach dem Wechsel auf Delphi 11.1 kam es zu diesem Problem, am Quellcode selbst wurde nichts geändert.

Da ich das jvDBGrid an diversen Stellen mit speziellen Konfigurationen verwende, kann ich es leider auch nicht so ohne weiteres austauschen.

Hat jemand eine Idee, wie man das lösen könnte?

Danke und Grüße

hoika 22. Jun 2022 22:15

AW: Fehlermeldung beim Schließen einer Form mit DblClick auf jvDBGrid in Delphi 11
 
Hallo,
welche Zeile zeigt denn der Debugger an?

Die Meldung sagt aus:
"Editx.SetFocus" auf ein

- unsichtbares Editx
- deaktiviertes Editx

Zitat:

am Quellcode selbst wurde nichts geändert.
Sicher, dass jetzt nicht eine neue/andere JEDI-Version benutzt wird?

TKanne 22. Jun 2022 22:30

AW: Fehlermeldung beim Schließen einer Form mit DblClick auf jvDBGrid in Delphi 11
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

die JEDI-Version wird vermutlich eine andere sein, in XE7 musste ich die damals ja manuell installieren, in D11 habe ich die über GetIt installiert.

Ja, ich vermute auch, dass das Problem irgendwo bei den JEDIs liegt, aber soweit reichen leider meine Kenntnisse nicht, als dass ich dort im Quelltext nachforschen könnte. :(

Ich habe mal ein minimalistisches Projekt zu Testzwecken erstellt. Mit einem DBGrid gibt es kein Problem.
Ich hänge das mal hier mit an...

himitsu 23. Jun 2022 01:39

AW: Fehlermeldung beim Schließen einer Form mit DblClick auf jvDBGrid in Delphi 11
 
Schau doch mal, von wo diese Fehlermeldung kommt?
(für irgendwas muß der Debugger ja gut sein, sonst langweilt sich der Arme)


Es gibt oftmals bei supercoolen Komponenten noch Code nach der Entwickler-Eventmethode (ich kann da leidlich bei DevExpress davon ein Liedchen trällern)
Wird dann z.B. beim Klick das Fenster geschlossen und nach deinem Code kommt noch Code der Komponente, dann würde es knallen, wenn da bereits das Fenster und somit die Komponente weg ist.

Aber beim Close/ModalResult (Free/Destroy verzögert) kommt es seltener vor, als wie beim sofortigen Free/Destroy der Form.
Allerdings wird beim Schließen gern auch mal das Fenster sofort ausgeblendet (Hide, bzw. Visible:=False), bevor es dann später/anschließend freigegeben wird.
Wöllte z.B. das Grid nach deinem Klick gern wieder den Fokus auf sich selbst setzen wollen (was echt unhölich von ihm wäre, wenn es standardmäßig passiert) und dabei bereits die Form/Komponente unsichtbar ist, dann würde z.B. dein Fokus-Fehler kommen.


Es wäre aber auch zu schön, wenn die VCL bei diesen Fokus-Exceptions sagen würde, welche Komponente da den Fokus haben wollte. (und leider ist es auch unmöglich alle gefühlt 2 dutzend SetFocus-Methoden zu überschreiben und dort den Namen mit die die Exception-Message zu schreiben, wenn ALLE Methoden wissen wer es ist ... leider sind Viele nicht überschreibbar)

Blup 23. Jun 2022 06:55

AW: Fehlermeldung beim Schließen einer Form mit DblClick auf jvDBGrid in Delphi 11
 
Statt das Fenster sofort zu schließen (Close), geht das auch indirekt, nachdem das Click-Ereignis abgearbeitet wurde.

Delphi-Quellcode:
PostMessage(Handle, WM_CLOSE, 0, 0);

TKanne 24. Jun 2022 19:12

AW: Fehlermeldung beim Schließen einer Form mit DblClick auf jvDBGrid in Delphi 11
 
Vielen Dank für die Antworten.

Leider bin ich bisher nicht zu einem Erfolg gegommen.
Delphi-Quellcode:
PostMessage(Handle, WM_CLOSE, 0, 0);
führt zum gleichen Verhalten.

In meinem Testprojekt (s.o.) wird ja nichts weiter gemacht als ein simples Close (oder entsprechende Alternativen).
Ich habe mich mal mit dem Debugger versucht, aber sorry, das übersteigt meinen Horizont.

Das seltsame ist ja, mit dem Standard-DBGrid, welches Delphi von Hause aus mitbringt, klappt ja alles, nur halt nicht mit dem JvDBGrid der JEDIs.
Na ja, wenn keiner noch ne Idee hat, wede ich wohl oder übel das JEDI-Gedöns rausschmeißen müssen.

mmw 24. Jun 2022 19:45

AW: Fehlermeldung beim Schließen einer Form mit DblClick auf jvDBGrid in Delphi 11
 
Hallo,

bei mir funktioniert's so

Delphi-Quellcode:
procedure TForm3.btn1Click(Sender: TObject);
begin
  close;
end;

procedure TForm3.dbgrd1DblClick(Sender: TObject);

begin
 dbgrd1.hide;
 btn1.Click;
end;

procedure TForm3.FormShow(Sender: TObject);
begin
 dbgrd1.Show;
end;
Gruß

TKanne 24. Jun 2022 20:22

AW: Fehlermeldung beim Schließen einer Form mit DblClick auf jvDBGrid in Delphi 11
 
Hallo mmw,

cool, ja so funktioniert es, zumindest im Testprojekt. :thumb:
Ist zwar etwas umständlicher aber als Workaround auf jeden Fall einfacher, als überall die Komponenten zu wechseln ;-)
Werde es nachher noch in den richtigen Projekten testen.

Danke und Grüße


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