Bonjour, j'essaye de comprendre les paintbox.
J'ai mis un panel sur la form puis un paintbox dans le panel dans le but de faire bouger des images sur un fond.

J'ai comme bug à la compilation : "incompatible type tgraphic and timage"


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
var pacman:Array[1..6] of TImage;
     pacmansprite:Timage;
...
procedure Ttp.FormCreate(Sender: TObject);
var i,j,hasard:Integer;
    Appdir:Variant;
begin
....
for i := 1 to 6 do
  begin
    pacman[i]:=Timage.Create(nil);
    pacman[i].Parent:=Panel1;
    if i=1 then pacman[i].Picture.LoadFromFile(Appdir+'assets\pacman\pacmanleft1.bmp');
    if i=2 then pacman[i].Picture.LoadFromFile(Appdir+'assets\pacman\pacmanleft2.bmp');
    if i=3 then pacman[i].Picture.LoadFromFile(Appdir+'assets\pacman\pacmanleft3.bmp');
    if i=4 then pacman[i].Picture.LoadFromFile(Appdir+'assets\pacman\pacmanright1.bmp');
    if i=5 then pacman[i].Picture.LoadFromFile(Appdir+'assets\pacman\pacmanright2.bmp');
    if i=6 then pacman[i].Picture.LoadFromFile(Appdir+'assets\pacman\pacmanright3.bmp');
    pacman[i].Width:=60;
    pacman[i].Height:=60;
    pacman[i].Stretch:=True;
  end;
 
...
  pacmansprite.Assign(pacman[1]);
...
end;
 
...
procedure Ttp.PaintBox1Paint(Sender: TObject);
begin
   PaintBox1.Canvas.Draw(0,0,pacmansprite);
end;