![]() |
Formular in Grid-Event freigeben, wo dieses Grid drauf ist
Hallo,
ich habe ein Problem, das mir richtig Kopfzerbrechen bereitet. Ich habe 2 Formulare. Das Hauptformular ruft das Unterformular auf. Auf dem Unterformular ist ein TDBAdvGrid. In diesem Grid mache ich eine bestimmte Abfrage im keydown-Event und wenn diese ein negatives Ergebnis liefert, Schließe ich zunächst das Unterformular und dann das Hauptformular in eben diesem Keydown-Event. Beim Schließen des Hauptfensters (onClose-Event) wird das Unterfenster freigegeben (FreeAndNil). Obwohl das Schließen des Hauptfensters die letzte Aktion im Keydown-Event des Grids war, wird scheinbar intern danach noch was im Grid gemacht, was zu Fehlern führt, weil ja das Formular wo es drauf ist schon freigegeben wurde. Ich muss irgendeine Möglichkeit finden, wie ich dieses Schließen der beiden Formulare (welches das Freigeben des Unterformulars enthält) durchführen kann, wenn eine Taste im Grid auf eben diesem Formular gedrückt wird, ohne das im entsprechenden Event selbst zu tun :/ Hat jemand eine Idee? Danke |
AW: Formular in Grid-Event freigeben, wo dieses Grid drauf ist
Ganz extrem und dringend von abzuraten
Delphi-Quellcode:
.
Halt(666);
|
AW: Formular in Grid-Event freigeben, wo dieses Grid drauf ist
Wenn das zweite Fenster weg ist, wieso hat dann das erste Fenster noch eine Referenz darauf?
Oder wie sonnst soll die Form 1 auf die 2 zugreifen können? |
AW: Formular in Grid-Event freigeben, wo dieses Grid drauf ist
Liste der Anhänge anzeigen (Anzahl: 1)
Vielleicht so in der Art? Siehe Anhang.
|
AW: Formular in Grid-Event freigeben, wo dieses Grid drauf ist
Ich versuche das nochmal anders zu beschreiben.
Wir haben einen Login-Screen. Nach dem Login landet man im Hauptformular. Von dort aus kann man ein Modul (nicht modal) aufrufen. In diesem Modul ist ein Grid, in dem onKeyDown eine Prüfung auf Lizienznutzungen stattfindet. Wenn festgestellt wird, dass an der Lizenzbelegung von außerhalb manipuliert wurde, soll man zurück in den Login-Screen geworfen werden. Ich befinde mich also im Key-Down Event des Grids von Modul-Formular. Ganz am Ende des Events schließe dieses Formular. Danach schließe ich im selben Event das Hauptformular, damit man zurück auf die Login-Maske geworfen wird. Beim Schließen des Hauptformulars wird aber onClose das Modul-Formular mit Freeandnil freigegeben. Das KeyDown-Event des Grids scheint aber iintern noch nachgelagerte Aktionen durchzuführen, die aber fehlschlagen, weil das Fenster und das Grid dann schon nicht mehr existiert. |
AW: Formular in Grid-Event freigeben, wo dieses Grid drauf ist
Zitat:
Im KeyDownEvent des Grids könntest du dann ja auch noch einen Merker setzen und anhand dessen dann im CloseEvent des Formulars entscheiden ob das Hauptformular mit geschlossen werden soll oder nicht. |
AW: Formular in Grid-Event freigeben, wo dieses Grid drauf ist
Dafür gibt es
![]() Zitat:
|
AW: Formular in Grid-Event freigeben, wo dieses Grid drauf ist
Wie wäre es mit einem Handler in der Login-Form, der auf eine Nachricht wartet, wenn sie kommt, prüfen welche Forms offen sind und dichtmachen. Wäre das eine Variante? (das key event sendet dann nachricht anstelle was zu schließen...)
|
AW: Formular in Grid-Event freigeben, wo dieses Grid drauf ist
Zitat:
|
AW: Formular in Grid-Event freigeben, wo dieses Grid drauf ist
Ich wollte noch einmal explizit meinen Respekt für Uwe Raabe ausdrücken. Er weiß scheinbar alles über Delphi und hat immer eine passende, saubere und einfache Lösung parat. Ein Mann von Ehre :-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:31 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