Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#7

AW: Dynamische Packages - Forms anzeigen - Leak

  Alt 12. Jan 2016, 13:51
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.


Result := Not(Result);
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?

Geändert von nahpets (12. Jan 2016 um 13:52 Uhr) Grund: Schreibfehler, mal wieder :-(
  Mit Zitat antworten Zitat