Bonjour,
En vue à terme d'une petite simulation j'ai un programme (fourni en pièce jointe) qui affiche une grille, un pion bleu fixe et un pion rouge qui se déplace aléatoirement.
A la création de la fiche, avant même d'appuyer sur "Start Simulation", lorsque que les cases vertes sont dessinées, je vois le balayage de la grille par la boucle de la procédure Ondraw (fournie ci-après) : une case blanche se déplace très rapidement (cf. capture écran). Même phénomène lorsque le programme est réduit puis restauré.
Deux questions :
(1) Est-ce que vous observez également ce phénomène ?
(2) Est-ce que c'est ce qu'on appelle le "flickering" (scintillement ?) et qui peut se résoudre notamment avec la technique du DoubleBuffered à ce que j'ai pu lire ?
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 procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var CaseAColorier : TRect; i : integer; j : integer; begin for i := 0 to 19 do begin for j := 0 to 19 do begin CaseAColorier:=DrawGrid1.CellRect(i,j); DrawGrid1.Canvas.Brush.Color := ClGreen; if (i = PosXJoueurA) and (j = PosYJoueurA) then DrawGrid1.Canvas.Brush.Color := ClRed; if (i = PosXJoueurB) and (j = PosYJoueurB) then DrawGrid1.Canvas.Brush.Color := ClBlue; DrawGrid1.Canvas.FillRect(CaseAColorier); end; end; end;
Partager