Irgendwie hats du die try-finally, try except Blöcke komisch geschachtelt.
Delphi-Quellcode:
sl := TStringlist.Create;
try
sl. ...;
try
sl.LoadfromFile(...);
except
...;
end;
finally
sl.Free;
end;
Wobei ich auf den Except Block verzichten würde und mit FileExist prüfen würde, ob die Datei vorhanden ist. Nutz man allerdings einen Opendialog ist das überflüssig, weil man ihn so einstellen kann, dass er nur existierende Dateien akzeptiert.