Forum: Sonstige Fragen zu Delphi
Delphi
by sx2008,
13. Mär 2011
Du verwendest in der Klasse TDecodeTrace zwei Objekte, die du besser übergeben solltest:
constructor TDecodeTrace.create(logger:TLogger; pm:TProtMessages);
begin
inherited create(true);
freeOnTerminate := true;
FStream := TMemoryStream.Create;
FerrorLog := logger;
FprotMessages := pm;
end;
Dabei sind FStream, FerrorLog und FprotMessage lokale Felder der Klasse.
Forum: Sonstige Fragen zu Delphi
Delphi
by sx2008,
12. Mär 2011
Dein Code hat einen Speicherblock (=ein Objekt) verändert, nachdem es freigegeben wurde.
Also im Prinzip soetwas:
var
x : TMyClass;
begin
x := TMyClass.Create;
x.MyProperty := 42;
x.Free;
// und jetzt kommt's
x.MyProperty := 66;