Mit TReader einlesen, in TWriter kopieren und dabei das Gewünschte verändern.
Leider habe ich mit TReader und TWriter gar keine Erfahrung (vermute mal, das verwendet man im Rahmen der Komponenten-Entwicklung?).
Ich habe mal versucht, ein Programm zu erzeugen, das zwei Images auf der Form hat. Nun wollte ich erst mal die Image2 laden und dann "kopieren" (wie Du schreibst) und in Image1 schreiben (die Image-Manipulation habe ich mir also erst einmal geschenkt).
So sieht der Source-Code aus:
Code:
procedure TForm43.FormCreate(Sender: TObject);
var
writer: TWriter;
reader : TReader;
msr, msw: TMemorystream;
begin
msr:= TMemorystream.create;
msw := TMemorystream.create;
reader := TReader.Create (msr,0);
// Liest Komponente "Image2"
reader.ReadComponent (Image2); // Hier kommt stream-lesefehler
Writer := TWriter.Create (msw, 0);
msr.position := 0;
msw.CopyFrom (msr, msw.size);
writer.WriteComponent (Image1);
end;
Bei der gekennzeichneten Zeile kommt der Fehler wie beschrieben.
Was mache ich falsch, bzw. muss ich anders machen?