Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Classhelper für TStream wird nicht erkannt (https://www.delphipraxis.net/114334-classhelper-fuer-tstream-wird-nicht-erkannt.html)

Die Muhkuh 23. Mai 2008 14:32


Classhelper für TStream wird nicht erkannt
 
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?

mkinzler 23. Mai 2008 14:37

Re: Classhelper für TStream wird nicht erkannt
 
Deine Methode heisst ja auch .WriteStringToStream()

Die Muhkuh 23. Mai 2008 14:39

Re: Classhelper für TStream wird nicht erkannt
 
Danke, ich hab es auch gerade gemerkt :mrgreen:

Ich hatte das erst als zwei einzelne Prozeduren / Funktionen und hab den Classhelper drum rum gebaut und dachte, ich hab die schon umbenannt.

Hab den Wald vor lauter Bäumen nicht gesehen :cyclops:

Ich hab jetzt 20 Minuten gebraucht, um das zu bemerken :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz