Probier mal
ExtractFileDir, anstatt
ExtractFilePath, denn dieses InitialDir sollte eigentlich kein abschließendes \ enthalten (außer beim Rootverzeichnis)
PS: Bezüglich deiner Fehlerbehandlung:
Bitte niemals die ursprünglichen Fehlermeldungen durchs "nichtssagende" Meldungen, ala dein "Es ist ein Fehler passiert, aber sich sag dir nicht warum
", ersetzen!
Außerdem fängst du zwar den Fehler beim Öffnen ab, aber dann machst du einfach weiter, als wenn nix wäre, womit dann dein MyStream undefiniert ist und es deswegen bestimmt nochmals knallt.
Delphi-Quellcode:
except
on E:
Exception do
begin
ShowMessage('
Fehler beim Öffnen der Datei!'
+ sLineBreak + E.
Message);
Exit;
// nachfolgende Codes nicht mehr abarbeiten
end;
end;
Delphi-Quellcode:
except
on E:
Exception do
begin
E.
Message := '
Fehler beim Öffnen der Datei!' + sLineBreak + E.
Message;
ShowException(E,
nil);
Exit;
end;
end;
Delphi-Quellcode:
except
on E:
Exception do
begin
E.
Message := '
Fehler beim Öffnen der Datei!' + sLineBreak + E.
Message;
raise;
end;
end;
1. nja, hier wird die ursprüngliche Fehlermeldung mit angezeigt und der nachfolgende Code wird nicht mehr ausgeführt
2. wie 1, ußer daß das Fehlerfenster mehr wie ein Fehlerfenster aussieht
3. das würde ich eher empfehlen > Text erweitern und
Exception weiterreichen) ... ist besonders vorteilhaft, wenn man auch mal außerhalb der Funktion auf diese
Exception reagieren will.
Edit: E entfernt