Hallo Leute
Nachdem ich nun die Goup durchsucht habe bin ich mir nicht im klaren wie ich jetzt meine Herausforderung gelöst kriege.
Ich möchte ein MDI Form über das BorderIcon biClose (?) {das weise X auf rotem Grund oben rechts...

} schliessen. Leider Funktioniert das nur ein mal. Danach scheint es einen Konflikt zu geben:
Zum anlegen des Form verwende ich folgende Prozedur um sicherzustellen, das das Form nur einmal offen ist, bzw. wenn es schon offen ist, es wieder in den Vordergrund kommt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| type TABLmanager = class(TForm) ADOConPSDat: TADOConnection; end;
var ABLmanager: TABLmanager;
procedure TPMCatcher.dxBarButton_ABLmgrClickClick(Sender: TObject); procedure createIt(); begin Screen.Cursor := crHourGlass; ABLmanager := TABLmanager.Create(Application); end; begin if (ABLmanager = nil) then begin createIt(); end else begin ABLmanager.Show(); end; end; |
Zum Schliessen verwende ich folgenden Event-Handler:
Delphi-Quelltext
1: 2: 3: 4:
| procedure TABLmanager.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; |
Schliess wohl das Form aber gibt nicht allen Speicher frei. Zumindest scheint ABLmanager <> nil zu sein...
Mit ".Close" oder ".Release" oder ".Destroy" hatte ich auch keinen erfolgt!
Wer von Euch hat sich damit schon mal rumgeschlagen und erfolg gehabt. Gespannt warte ich auuf Eure kreativen Lösungen!