Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2266 connectés 

 


Dernière réponse
Sujet : [delphi] boucle while et contrôle de l'utilisateur (newbie)
[SDF]Poire

antp a écrit a écrit :

pour ne pas trop ralentir l'exécution ce que tu peux faire c'est avoir un compteur et tous les 5 ou 10 passages seulement tu fais le processmessages par exemple  




Malin ça.... :D


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
[SDF]Poire

antp a écrit a écrit :

pour ne pas trop ralentir l'exécution ce que tu peux faire c'est avoir un compteur et tous les 5 ou 10 passages seulement tu fais le processmessages par exemple  




Malin ça.... :D

jmbocquet :jap:
antp pour ne pas trop ralentir l'exécution ce que tu peux faire c'est avoir un compteur et tous les 5 ou 10 passages seulement tu fais le processmessages par exemple
jmbocquet :jap: merci beaucoup

Code :
  1. randomize;
  2.   pi := random(3)+2;
  3.   r1 := random(230);
  4.   r2 := (230-r1);
  5.   m1 := int(random(10))+11;
  6.   m2 := m1+random/10;
  7.   m3 := m2*int(random(100));
  8.   m4 := m3+(random/100);
  9.   b1 := exp(random/2)/20000;
  10.   b2 := b1*20000;
  11.   while not(iFin) do;
  12.   begin
  13.     i := i+pi*b1;
  14.     j := i-pi*b2;
  15.     x1:= 400+r1*sin(i*m1);
  16.     y1:= 300+r1*cos(i*m2);
  17.     x2:= x1+r2*sin(i*m3);
  18.     y2:= y1+r2*cos(i*m4);
  19.     xj1 := 400 + r1 * sin(j*m1);
  20.     yj1 := 300 + r1 * cos(j*m2);
  21.     xj2 := xj1 + r2 * sin(j*m3);
  22.     yj2 := yj1 + r2 * cos(j*m4);
  23.     with canvas do
  24.     begin
  25.       pixels[round(x2),round(y2)] := $00ffffff;
  26.       pixels[round(xj2),round(yj2)] := $00000000;
  27.     end ;
  28.   Application.ProcessMessages 
  29. end ;


 
 
C'est bien comme ça qu'on l'utilise ? :D

 

[edtdd]--Message édité par jmbocquet--[/edtdd]

JWhy l'equivalent do DoEvents est Application.ProcessMessages
jmbocquet ps : a noter que iFin=True est obtenu par un clic sur un bouton. Mais lors de l'exécution de cette boucle, je n'arrive pas à cliquer sur le bouton.
Merci de votre aide, je galètre depuis 2 heures à chercher dans l'aide sans rien trouver :sweat:
jmbocquet Dans ce genre de boucle :
 

Code :
  1. randomize;
  2.   while not(iFin) do
  3.   begin
  4.       x := random(800);
  5.       y := random(600);
  6.       largeur := random(100);
  7.       hauteur := random(100);
  8.       couleur := random($ffffff);
  9.       canvas.Brush.color := couleur;
  10.       canvas.Rectangle(x,y,x+largeur,y+hauteur);
  11.   end ;


 
le seul moyen d'arrêter le programme, c'est Ctrl+Alt+Supp
je voudrais ajouter une instruction (équivalent de DoEvents sous VB4) pour pouvoir contrôler le programme.


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)