Hi,
ich hab einen Classhelper für TStream:
Delphi-Quellcode:
type
// Klassenhelfer für den TStream um Strings komfortabel lesen und schreiben zu können
TStreamStringWriter = class helper for TStream
public
procedure WriteStringToStream(const aString: string);
function ReadStringFromStream: string;
end;
implementation
{ TStreamStringWriter }
// Liest einen String aus und gibt ihn zurück
function TStreamStringWriter.ReadStringFromStream: string;
var
len: Integer;
begin
ReadBuffer(len, SizeOf(Integer));
SetString(Result, PChar(nil), len);
ReadBuffer(Pointer(Result)^, len);
end;
// Schreibt einen String in den Stream
procedure TStreamStringWriter.WriteStringToStream(const aString: string);
var
len: Integer;
begin
len := Length(aString);
WriteBuffer(len, SizeOf(Integer));
WriteBuffer(PChar(aString)^, len);
end;
Dieser Klassenhelfer liegt in der Datei uclasshelpers.pas.
In einer anderen Datei (ulog.pas) hab ich stehen:
Delphi-Quellcode:
procedure TEFTLogEntry.SaveToStream(aStream: TStream);
var
i: Integer;
begin
i := Integer(LogType);
aStream.WriteBuffer(i, SizeOf(Integer));
aStream.WriteString(LogEntry);
aStream.WriteString(LogTime);
end;
Zum Test hab ich die uclasshelpers.pas in die uses von ulog.pas geschrieben. Die Suchpfade dürften eig. passen (zumindest tun sie das für andere Dateien in den gleichen Ordnern).
Jedoch kommt beim Kompilieren, dass 'WriteString' ein undefinierter Bezeichner sei.
Woran könnte es liegen, dass der Classhelper nicht erkannt wird?