Einzelnen Beitrag anzeigen

Alibi

Registriert seit: 15. Aug 2003
Ort: Bispingen
94 Beiträge
 
Delphi 7 Personal
 
#1

Stream als Rückgabewert einer Funktion

  Alt 2. Jun 2004, 00:11
Hi,
ich versuche hier gerade eine Funktion zu schreiben, die mir einen Stream zurückliefert, aber irgendwie will das hier nicht. Ich hab als vereinfachtes Beispiel, um andere Fehlerquellen auszuschließen das hier eben gemacht, aber selbst das will nicht:
Delphi-Quellcode:
function teststream: TMemoryStream;
var
  source: TFileStream;
  buf: array [0..1024] of char;
  numread: integer;
begin
  source := TFileStream.Create('add.bmp',fmOpenRead);
  numread := source.Read(buf, sizeof(buf));
  result := TMemoryStream.Create;
  result.WriteBuffer(buf, numread);
  source.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  bmp: TBitMap;
begin
  bmp := TBitMap.Create;
  bmp.LoadFromStream(teststream);
  bmp.SaveToFile('test.bmp');
  bmp.Free;
end;
Die test.bmp ist immer nur 0 Byte groß, wobei jedoch numread die exakte Anzahl der zu lesenden Bytes ist. add.bmp ist innerhalb der Buffergröße, also das ist egal.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning.
  Mit Zitat antworten Zitat