So eine PaintBox ist eigentlich bloß mehr für den eigentlichen Screen-Output selbst gedacht, und eignet eher weniger für ein anfängliches nur Parken eines Bildes. So ein einfaches TBitmap ist dafür also besser geeignet. Das erzeugst und lädst du dann zuerst noch im Creater der Form:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
const AFileName = 'blablabla';
begin
FBitmap := TBitmap.Create;
FBitmap.LoadFromFile(AFileName);
end;
Dann ersetzt du in deinem letzten Post einfach die Paintbox durch dieses FBitmap und schon müsste es eigentlich funktionieren. Auch ein Image1.Repaint nach dem "BitBlt" möglichst nicht vergessen.
(Aber wie gesagt: Die Benutzung einer ImageList wäre in deiner Situation wohl das einfachste. Nötig gewesen wäre dann nämlich insgesamt immer nur so etwas:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject); // z.B. fürs Anschalten des LED
begin
Image1.Canvas.FillRect(Image1.Canvas.ClipRect); // ~ Image.clear
ImageList1.GetBitmap(0,Image1.Picture.Bitmap);
end;
bzw.
procedure TForm1.Button2Click(Sender: TObject); // z.B. fürs Ausschalten des LED
begin
Image1.Canvas.FillRect(Image1.Canvas.ClipRect); // ~ Image.clear
ImageList1.GetBitmap(1,Image1.Picture.Bitmap);
end;
Allerdings muss man ja das "BitBlt" in jedem Falle auch einmal kennen gelernt haben
--> als eigene Ausrede, nicht sofort die ImageList erwähnt zu haben
)