IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Demande de test (rapide) sur le scintillement graphique


Sujet :

Delphi

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Simicro
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Mai 2012
    Messages : 136
    Par défaut Demande de test (rapide) sur le scintillement graphique
    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;
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Demande de test bénévole sur algorithme de cryptage
    Par Marlan dans le forum Sécurité
    Réponses: 2
    Dernier message: 02/11/2011, 12h01
  2. [JUnit] Les tests sur des interfaces graphiques
    Par adilo dans le forum Tests et Performance
    Réponses: 5
    Dernier message: 01/02/2006, 14h27
  3. Demandes d'informations divers sur SGBD
    Par AlexB59 dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 26/05/2005, 12h41
  4. Test if sur des float
    Par Minuit dans le forum Linux
    Réponses: 2
    Dernier message: 26/03/2005, 13h08
  5. Réponses: 7
    Dernier message: 18/08/2004, 15h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo