Result wurde am anfang auf false gesetzt.
Wenn die form erfolgreich geladen wird, soll der Rückgabewert ja "true" sein. Die form soll ja meist nur einmal geladen werden (und modal angezeigt).
OK, ich seh grad: Result müsste am Anfang auf True initialisiert werden,um sinn zu machen.
Lustig.
nach mehmaligen Aufrufen weiß keiner mehr, was Result nun ist.
Das glaube ich jetzt nicht wirklich.
Result := Not(Result)
, was theoretisch den Wert Result umkehren könnte, steht immer hinter dem Werfen einer
Exception und wird von daher im realen Leben vermutlich nie ausgeführt. (oder hab' ich da was übersehen?)
Dashier verstehe ich nicht:
Delphi-Quellcode:
With TComponentClass(FormClass).Create(Nil) As TCustomForm Do
Try
If Modal Then
Showmodal
Else
Show;
Finally
Free;
End;
Du erstellst ein Formular, dann entscheidest Du, ob es Modal oder nicht angezeigt werden soll.
Bei ShowModal dürfte das auch funktionieren, wenn im Finally das Free aufgerufen wird.
Wie ist das denn beim Show? Bleibt das Programm da quasi im Quelltext stehen und wartet, bis das Formular geschlossen wird, bevor im Finally das Free aufgerufen wird?
Hab's gerade mal unter Delphi 7 ausprobiert: Das auf diese Art und Weise erstellte Formular bekomme ich nicht wirklich zu sehen, ein kurzes Flimmern, bei dem man erahnen kann, dass da irgendwo ein Formular angezeigt werden könnte, ja, aber ein benutztbares Formular? Fehlanzeige.
Automatisch "zerstört" werden könnte es nur, wenn im Create statt Nil ein Parent angegeben wird. Wenn niemand weiß, wem das Formular gehört, wer soll denn dann wissen, wann es "beseitigt" werden soll?