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.