Bonjour
Je vous propose l'écriture d'un texte comme lorsqu'on le tape à la main au clavier, c'est à dire lettre après lettre. Celui-ci est réécrit plusieurs fois à la suite pendant un temps défini.
Pour faire cela, il faut déposer sur une forme :
- 1 TButton;
- 2 TTimer;
- 1 TLabel.
Paramétrage des propriétés des composants :
- Caption du TLabel : vide;
- Pour les TTimer : Enabled False.
- Exemple : pour le premier TTimer : Interval = 100, pour le deuxième : Interval = 30000 (30 secondes)
Pour commencer on déclare :
L'écriture se fait dans le TLabel. On crée la procédure d'écriture :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 private letter: word; procedure Ecrire(Sender: TObject);
Pour lancer l'écriture, il faut lancer le premier TTimer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 procedure TForm1.Ecrire(Sender: TObject); // Procédure d'écriture du texte Const texte = 'Le texte s''écrit lettre après lettre...'; begin Label1.Caption := copy(texte, 1, letter)+ '|'; letter := letter + 1; // Lettre à lettre If Label1.Caption = texte + '|' then Label1.Caption := texte; // Effacement du faux curseur If Label1.Caption = texte then letter := 0; // Remise au début end;
Quand le premier TTimer est lancé, l'écriture commence. Le temps d'écriture est fixé par le deuxième TTimer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 procedure TForm1.Button1Click(Sender: TObject); begin Timer1.Enabled := True; // Lancement temporisation durée entre chaque lettre end;
L'arrêt et la réinitialisation de la boucle sont réalisés au niveau du deuxième TTimer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 procedure TForm1.Timer1Timer(Sender: TObject); begin Ecrire(Self); // Lancement écriture Timer2.Enabled := True; // Lancement temporisation durée d'écriture end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 procedure TForm1.Timer2Timer(Sender: TObject); begin Timer1.Enabled := False; // Arrêt temporisation durée entre chaque lettre Label1.Caption := ''; // Effacement du texte letter := 0; // Remise de l'écriture au début end;Attention au paramétrage de l'intervalle du deuxième TTimer. Il doit laisser le temps au texte d'être écrit plusieurs fois.
Partager