Einzelnen Beitrag anzeigen

Schokohase
(Gast)

n/a Beiträge
 
#13

AW: Prüfung auf Assigned(MyObject) true obwohl MyObject nicht initialisiert wurde

  Alt 23. Mai 2019, 13:38
Sollte es hier nicht eine Compilerwarnung geben?
Die Zeile "slShow := TStringList.Create;" sollte vor dem try stehen.
Nein, das ist durchaus ein gängiges Muster und erst recht vom Compiler nicht zu beanstanden.
Beispiel:
Delphi-Quellcode:
procedure foo;
var
  sl1, sl2: TStringList;
begin
  sl1 := nil;
  sl2 := nil;
  try

    // beliebiger code hier

    sl1 := TStringList.Create;

    // beliebiger code hier

    sl2 := TStringList.Create;

    // beliebiger code hier

  finally
    sl1.Free;
    sl2.Free;
  end;
end;
Wenn an irgendeiner Stelle von "beliebiger code hier" eine Exception geworfen wird, oder mit Exit der Code verlassen werden soll, dann wird der finally-Block ohne Probleme abgearbeitet.
  Mit Zitat antworten Zitat