Einzelnen Beitrag anzeigen

Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#6

Re: TMemoryStream -> Speicherwillkür?!

  Alt 25. Mai 2007, 13:06
Dein Problem liegt in

procedure FillStream(AStream: TMemoryStream); wenn du

AStream := TestStream; machst, dann passiert nichts, denn der Parameter wird als Wert übergeben und eine Änderung des Parameters
bleibt nur in der Prozedur erhalten. Genauer gesagt, der Parameter AStream wird kopiert, und du änderst einfach nur
die lokale Variable.

Versuch mal
procedure FillStream(var AStream: TMemoryStream); Ich würde dir jedoch empfehlen, innerhalb von FillStream keinen Stream zu erzeugen, sondern
dem Aufrufer dies zu überlassen. Dann kannst du nämlich Daten an beliebiger Stelle in einem Stream speichern.


Delphi-Quellcode:


procedure FillStream(AStream: TMemoryStream);
var
  TestString : string;
begin
  if not Assigned(AStream) then
    exit; //oder raise exception
TestString := 'TEST';


AStream.Write(TestString[1], Length(TestString));
end;

var TestStream : TMemoryStream;
begin
  TestStream := TMemoryStream.Create;
....
  //hier z.B. weitere Daten schreiben

  FillStream(AStream);
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat