Guten Tag allerseits
Von der seriellen Schnittstelle bekomme ich von einem Controller ein Bild im Jpeg Format zugesendet.
Im 1. Schritte habe ich diese Daten in eine Datei 'bild.jpg' geschrieben und dann mit
Form1.Image1.Picture.LoadFromFile('bild.jpg');
in der Form angezeigt.
Um dann nicht den Umweg über die Disk zu nehmen, habe ich es über String geladen. Nur: obwohl es einwandfrei funktioniert, habe ich keine Ahnung, ob ich alles richtig gemacht habe. Denn das meiste habe ich mehr intuitiv denn diskursiv gemacht. Darf ich Euch bitten, die folgenden Zeilen zu kritisieren.
Danke für eure Mithilfe.
Delphi-Quellcode:
//==============================
// ListView1 Click
//==============================
procedure TForm1.ListView1Click(Sender: TObject);
var nPictNr : Integer;
cBild : String;
TmpJpg : TJPEGImage;
memStream : TMemoryStream;
begin
nPictNr := StrToInt(ListView1.Items[ListView1.ItemIndex].Caption);
cBild := MyComPort.SendPicture(nPictNr);
if cBild <> '' then begin
memStream := TMemoryStream.Create();
memStream.WriteBuffer(cBild[1], Length(cBild));
memStream.Position := 0;
TmpJpg := TJPEGImage.Create;
TmpJpg.LoadFromStream(memStream);
Form1.Image1.Picture.Assign(TmpJpg);
end;
end;