[delphi] boucle while et contrôle de l'utilisateur (newbie)

boucle while et contrôle de l'utilisateur (newbie) [delphi] - Programmation

Marsh Posté le 30-11-2001 à 15:09:11    

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.

Reply

Marsh Posté le 30-11-2001 à 15:09:11   

Reply

Marsh Posté le 30-11-2001 à 15:44:48    

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:

Reply

Marsh Posté le 30-11-2001 à 16:08:43    

l'equivalent do DoEvents est Application.ProcessMessages


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Marsh Posté le 30-11-2001 à 16:12:25    

: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]

Reply

Marsh Posté le 30-11-2001 à 16:13:38    

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


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 30-11-2001 à 16:15:41    

:jap:

Reply

Marsh Posté le 30-11-2001 à 19:35:12    

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


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed