AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Fehlermeldung beim Schließen einer Form mit DblClick auf jvDBGrid in Delphi 11
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von TKanne · begonnen am 22. Jun 2022 · letzter Beitrag vom 24. Jun 2022
Antwort Antwort
TKanne

Registriert seit: 6. Aug 2007
Ort: Berlin
24 Beiträge
 
Delphi 11 Alexandria
 
#1

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

  Alt 22. Jun 2022, 23:06
Delphi-Version: 11 Alexandria
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
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

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

  Alt 22. Jun 2022, 23:15
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?
Heiko
  Mit Zitat antworten Zitat
TKanne

Registriert seit: 6. Aug 2007
Ort: Berlin
24 Beiträge
 
Delphi 11 Alexandria
 
#3

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

  Alt 22. Jun 2022, 23:30
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...
Angehängte Dateien
Dateityp: zip jvDBGridProblem.zip (7,7 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

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

  Alt 23. Jun 2022, 02:39
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)
$2B or not $2B
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.477 Beiträge
 
Delphi 12 Athens
 
#5

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

  Alt 23. Jun 2022, 07:55
Statt das Fenster sofort zu schließen (Close), geht das auch indirekt, nachdem das Click-Ereignis abgearbeitet wurde.

PostMessage(Handle, WM_CLOSE, 0, 0);
  Mit Zitat antworten Zitat
TKanne

Registriert seit: 6. Aug 2007
Ort: Berlin
24 Beiträge
 
Delphi 11 Alexandria
 
#6

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

  Alt 24. Jun 2022, 20:12
Vielen Dank für die Antworten.

Leider bin ich bisher nicht zu einem Erfolg gegommen.
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.
  Mit Zitat antworten Zitat
mmw
(Gast)

n/a Beiträge
 
#7

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

  Alt 24. Jun 2022, 20:45
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ß
  Mit Zitat antworten Zitat
TKanne

Registriert seit: 6. Aug 2007
Ort: Berlin
24 Beiträge
 
Delphi 11 Alexandria
 
#8

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

  Alt 24. Jun 2022, 21:22
Hallo mmw,

cool, ja so funktioniert es, zumindest im Testprojekt.
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:58 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