@ shmia,
mich hat deine Klasse sehr interssiert und ich habe es mir angeschaut.
Erst einmal mein Respekt für deine Arbeit hierzu und das zur Verfügung stellen des Sources.
Leider bekomme ich das Testprojekt nicht kompiliert.
In dem Source-Abschnitt wo du das GetTickCount-Problem (wegen dem "neureseten") umgehst, erscheint bei mir eine Fehlermeldung:
[DCC Fehler] FileStreamUtils.pas(281): E2003 Undefinierter Bezeichner: 'SFOpenError'
Delphi-Quellcode:
error := GetLastError;
curtime := GetTickCount;
if ((curtime - starttime) >= timeout) or
((error<>ERROR_SHARING_VIOLATION) and (error<>ERROR_LOCK_VIOLATION)) then
raise EFOpenError.CreateFmt(SFOpenError+#13#10+ //<-- Fehlermeldung
SysErrorMessage(error), [FileName]);
Ich verwende D2007 Prof unter Vista 32 Bit.
Ich kann die Fehlermeldung nun leider nicht auflösen...
Weißt du vllt. was hier schief läuft? Evtl. mit etwas Erläuterung zu genau dieser Zeile 281 (raise...)?
Denn genau diese Stelle kapier ich eben nicht...
(vermutlich kennt Vista das nicht mehr)
Danke!
//Edit: Habe die Lösung selbst gefunden. Liegt an der Delphiversion (vor Delphi 6)
Ab den Delphi 6-Versionen wurden einige Konstanten von Borland in die RtlConsts Unit "verschoben". Man muss also unter der Uses-Klausel noch die "RtlConsts" mit aufnehmen.
@ shmia, evtl. den Hinweis mit in deinen Code aufnehmen?