@Dejan Vu
Das kann evtl. funktionieren, allerdings muss der Aufruf von
GetLastError
direkt im Anschluss der Funktion aufgerufen werden, wo dieser Fehler (hier
CreateDir
) aufgetreten ist.
Ansonsten ist nicht gewährleistet, dass man auch wirklich die Fehlermeldung bekommt, die man eigentlich haben möchte.
EDIT
Eigentlich arbeitet
GetLastError
nur dann zuverlässig, wenn man gesichert direkt vorher eine Windows-Funktion aufgerufen hat.
Bei
SysUtils.CreateDir kann man sich da aber nicht wirklich sicher sein ...
Delphi-Quellcode:
type
// Wenn ein Arbeitsschritt fehlschlägt, dann diese Exception werfen
EStepException =
class(
Exception);
procedure TForm1.BtnStartClick( Sender : TObject );
begin
BtnStart.Enabled := False;
try
try
MELog.Lines.Append('
Step 1: Allocating Memory');
MELog.Lines.Append('
- creating directory "' + DummySpace + '
"');
if ForceDirectories( DummySpace )
then
MELog.Lines.Append( '
success' )
else
raise EStepException.CreateFmt( '
Could not create "%s"', [DummySpace] );
// nächste Schritte
except
on E: EStepException
do
begin
MELog.Lines.Append( E.
Message );
MELog.Lines.Append( '
Operation aborted.' );
raise;
end;
end;
finally
BtnStart.Enabled := True;
end;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)