Generer une ligne de texte

[Résolu]
Signaler
Messages postés
90
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
31 mai 2009
-
Messages postés
90
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
31 mai 2009
-
Voila enfaite j'ai placé un Edit et un Button et enfaite j'ai plusieurs lignes de texte et j'aimerais qu'on faite qu'a chaque fois que je clique il m'affiche le texte puis quand je rappuie sur le même boutton il m'affiche une phrase au hasard je vais vous montrer en gros

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit3.Text:='Bonjour c'est moi';
Edit3.Text:=' Je m'apelle .... "
( Mais quand je fait comme ca apres avoir affiché le Bonjour c'est moi , je rappuie une fois pour qu'il affiche l'autre texte mais cela ne fait rien , comment puis-je faire ? ^^' )
end;

end.

Merci

4 réponses

Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
const
  SentencesCountMax = 8;

  Sentences : array[0..TACountMax-1] of string = (
    'Bonjour!',
    'Salut!',
    'Coucou!',
    'Salutation!',
    'Hi!',
    'Hello',
    '''Lut!',
    'Yo!'
  );
   

var
  CurrentSentence : integer = 0;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit3.Text := Sentences[CurrentSentence];
  CurrentSentence := (CurrentSentence+1) mod SentencesCountMax;
end;


<hr size="2" width="100%" />
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
oops :

Sentences : array[0..<strike>TACountMax</strike>-1] of string =

Sentences : array[0..SentencesCountMax-1] of string =

<hr size="2" width="100%" />
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
const
  SentencesCountMax = 8;
  { Nombre maximum de ligne de texte
  }

  Sentences : array[0..SentencesCountMax-1] of string = (
  { tableau allant de 0 a SentencesCountMax-1     soit 8-1 7 et 7 + 0 8 elements
    pas convaincus ? 0 1 2 3 4 5 6 7 = 8 elements :)    de 1 a 8 8 et de 0 a 7 8, simple non ?
  }
    'Bonjour!',
    'Salut!',
    'Coucou!',
    'Salutation!',
    'Hi!',
    'Hello',
    '''Lut!',
    'Yo!'
  );
   

var
  CurrentSentence : integer = 0;
  { compteur qui est incrementé a chaque clique sur button1
  }

procedure TForm1.Button1Click(Sender: TObject);
begin
  { on affiche la ligne
    0 la premiere fois, puis 1 puis 2 etc...
  }
  Edit3.Text := Sentences[CurrentSentence];

  CurrentSentence := (CurrentSentence+1) mod SentencesCountMax;
  { incrementation +1 a chaque iteration
    MOD (modulo) permet de faire un index rotatif, MOD retourne le reste
    d'une division entiere.
    (4 div 2)= 2 ; reste= (4 mod 2)= 0 ; 4/2= 2
    (5 div 3)= 1 ; reste= (5 mod 3)= 2 ; 5/3= 1.6666666666666666666x
    (9 div 4)= 2 ; reste= (9 mod 4)= 1 ; 9/4= 2.25
    (1 div 8)= 0 ; reste= (1 mod 8)= 1 ; 1/8= 0.125
    (7 div 5)= 1 ; reste= (7 mod 5)= 2 ; 7/5= 1.4
   
    exemple :
    (0 + 1) mod 8 = 1
    (1 + 1) mod 8 = 2
    (2 + 1) mod 8 = 3
    (3 + 1) mod 8 = 4
    (4 + 1) mod 8 = 5
    (5 + 1) mod 8 = 6
    (6 + 1) mod 8 = 7
    (7 + 1) mod 8 = 0


    (0 + 1) mod 8 = 1 ... etc



    it's mathémagique!
    le truc c'est que ça marche même si on continue au dela de 8 :



     (7 + 1) mod 8 0 (7+1 8 ; 8 = multiple de 8 (8x1))



     (8 + 1) mod 8 = 1



     (9 + 1) mod 8 = 2



    (10 + 1) mod 8 = 3



    (11 + 1) mod 8 = 4



    (12 + 1) mod 8 = 5



    (13 + 1) mod 8 = 6



    (14 + 1) mod 8 = 7



    (15 + 1) mod 8 0 (15+1 16 ; 16 = multiple de 8 (8x2))



    (16 + 1) mod 8 = 1
    ...    (23 + 1) mod 8 0 (23+1 24 ; 24 = multiple de 8 (8x3))
    ...    (31 + 1) mod 8 0 (31+1 32 ; 32 = multiple de 8 (8x4))

    donc chaque multiple de 8 retournera 0
    40, 48, 56, 64, 72, 80, 88, 96, 104 etc.
    et chaque chiffres suivant (41,42,43 etc) renverons respectivement
    la suite 1,2,3,4,5,6,7
    d'ou le nom "index rotatif" puisque malgré l'incrementation
    on repete toujours la même suite de nombres.



  }
end;






<hr size="2" width="100%" />
Messages postés
90
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
31 mai 2009

Super merci !