Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Delphi XE2 Form beenden und Form nil setzen
landwehr - Mi 13.03.13 20:35
Titel: Delphi XE2 Form beenden und Form nil setzen
Hallo,
ich habe eine Form indem ich mit einem Button ein weiteres Form aufrufe. Beide fsMDIChild. Nun Verlasse ich das zweite Formular und habe beim OnClose Ereignis folgenden Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TKontoSuchenFrm.FormClose(Sender: TObject; var Action: TCloseAction); begin SucheKontoQry.Close; SucheKontoSrc.DataSet := NIL; if ProgOptions.Common.WindowPosition then ToolsForm.SaveWindowPosition(Self); Action := caFree; TForm(Self) := nil; end; |
Frage ich dann im ersten Formular ab ob das zeite nil ist, ist es nicht nil warum nicht?
Hat jemand eine Idee, bin schon am verzweifeln.
Walter
Moderiert von
Martok: Delphi-Tags hinzugefügt
WasWeißDennIch - Mi 13.03.13 21:06
Das dürfte nicht die Referenz sein, die Du eigentlich auf nil setzen willst. Wenn Du so etwas unbedingt brauchst, könntest Du das über ein Event lösen.
Tranx - Do 14.03.13 17:39
Hast Du mal mit dem Debugger getestet, ob die Formclose-Prozedur aufgerufen wird? Wenn ja, dann gib doch mal als überwachte Variable das zu schließende Formular an. Und was erscheint denn als Ergebnis bei der Abfrage im ersten Formular?
WasWeißDennIch - Do 14.03.13 18:42
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm1.Button1Click(Sender: TObject); var Ref1, Ref2: TForm; begin Ref1 := TForm.Create(nil); try Ref2 := Ref1; finally Ref1.Free; Ref1 := nil; end; if Ref1 = nil then ShowMessage('Erste Referenz ist weg') else ShowMessage('Oops, ein wilder Zeiger: Ref1'); if Ref2 = nil then ShowMessage('Zweite Referenz ist auch weg') else ShowMessage('Oops, ein wilder Zeiger: Ref2'); end; |
Preisfrage: welche Meldungen erscheinen?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!