Es ergibt sich für mich jedoch nicht, was der Unterschied ist, wenn man in der Klasse 39 mal fast das selbe schreibt [...] oder ob ich dann in meinem Formular 39 mal steht [...]
- Siehe sx2008's Post
- Willst du die Schreib- bzw. Lesefunktion ändern, z.B. weil du einen Fehler entdeckt hast oder weil du noch andere Informationen speichern willst oder weil du ein anderes Format nutzen willst ... so musst du es nur ein einziges mal an einer Stelle ändern und nicht 39 mal
Ich will doch nur sowas verwirklichen
Form2.Edit1.Text :=Typ.readstringfromStream(SStream,Typ.GibName);
Dann musst du keine
procedure nutzen, sondern eine
function:
Delphi-Quellcode:
function TEinheittyp.ReadStringFromStream(stream : TFilestream): String;
var
len: integer;
begin
stream.ReadBuffer(Len, SizeOf(Len));
Setlength(Result, Len); // Die interne Variable Result ist der Schlüssel: Sie enthält den Rückgabewert ...
stream.ReadBuffer(PChar(Result)^, Len);
end;
Was du allerdings mit dem "Typ.GibName" machen willst, weiß ich jetzt nicht ...
Const bewirkt eben genau das: Der Parameter wird zu einer Konstanten und kann somit nicht geändert werden. Darum auch der Fehler, weil du versuchst, Daten darin einzulesen. Wenn du es auf die Weise machen möchtest, müsstest du
var oder
out nutzen.