Allerdings hast du beim fmCreate ein kleines Problem, denn dort kann man die Shared-Attribute nicht benutzen, weil das bereits $FFFF ist
Das ist schon seit vielen Jahren nicht mehr so (
mindestens seit Delphi 2010):
Delphi-Quellcode:
unit Classes;
...
const
{ TFileStream create mode }
fmCreate = $FF00;
Das ändert aber nichts daran, dass ein simples
TFilestream.Create(Filename, fmCreate)
die Datei immer mit exclusivem Zugriff erstellt.
Erst wenn man den Share-Mode explizit angibt wird dieser benutzt. Damit ist es möglich die Datei mit "fmCreate or fmShareDenyWrite" zu erstellen um so anderen Programmen die Möglichkeit zu geben die Datei bereits während des Schreibens zu lesen (z.B. bei Logdateien). Diese Möglichkeit gab es bei den sehr alten Delphiversionen (z.B. Delphi 2007) so nicht.