Zitat von
Delphi OH:
Die Verwendung der nicht-nativen Delphi-Dateiroutinen wie FileCreate ist nicht zu empfehlen. Diese Routinen greifen auf die Systemroutinen zurück und geben Betriebssystem-Datei-Handles zurück, keine Delphi-Dateivariablen. Bei ihnen handelt es sich um Low-Level-Routinen für den Dateizugriff. Verwenden Sie für normale Dateioperationen stattdessen AssignFile, Rewrite und Reset
Wie du in dem Beispiel auch siehst, bekommst du hier ein
Handle zurück, ist nicht wirklich die feine (
OOP) Art. Es macht im Prinzip wenig Unterschiede, da letztlich hinter einem TStream etwas ähnliches steht, aber ein TStream hat den Vorteil dass es ein Objekt ist. Wenn du TStream verwendest, hast du eine Abstrakte Basisklasse mit all ihren Funktionen. Das heißt, dass du hier die Eigenschaften eines TStream garantieren kannst (egal ob es ein TFileStream, ein TMemoryStream oder ein anderer Nachfahre ist). Bei einem
Handle (von Delphi als Integer zurückgegeben) hast du die Typsicherheit nicht. Könnte ein Integer sein oder ein
Handle auf eine Datei oder ein
Handle auf ein
GDI Objekt, wer weiß das schon?
Deswegen würde ich dir eher zur Kapselung TStream raten.