Changer text

cocowz Messages postés 89 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 25 février 2007 - 12 mars 2006 à 19:26
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 13 mars 2006 à 08:32
Bonjour a tous.
Je vien de debuter dans delphi et je svp voudrais que vous m'aidiez a faire sa:
Je veux faire un projet et que quand je clique sur le bonton sa me change le texte dans la label.
Par ex Je clique 1 fois sa me dit : Salut
Je clique 2eme fosi sa me dit: Sa va ? etc....

Merci de m'aider a+

9 réponses

Utilisateur anonyme
12 mars 2006 à 19:35
Salut

procedure TForm1.Button1Click(Sender: TObject);
var
mot : string;
begin
mot:=edit1.text;
if mot='' then
edit1.Text:='salut';
if mot='salut' then
edit1.text:='ca va ?';
end;

Si tu veux plus de mots une autre procedure est envisageable mais c'est plus complexe.

Bonne prog
0
Sat83 Messages postés 166 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 13 octobre 2008
12 mars 2006 à 21:11
Sinon tu peut faire comme çà:

Tu declare en variable globale:
cpt:integer
list:TstringList

A la dreation de la forme tu fais:
list:= Tstringlist.Create;
list.Add('message1') ;
list.Add(' message2 ') ;
list.Add('message3') ;
list.Add('message4') ;
[...]
cpt: =0;

et dans la procedure de ton bouton:
label1.Caption:=list.Strings[i];
cpt:=cpt+1;

Ne pas oublié de faire un list.destroy a la fermeture de l'appli, et de verifié que l'entier cpt ne depasse pas la fin de la liste
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
12 mars 2006 à 21:40
sat83 attention il faut tester que i<list.count sinon tu auras une erreur d'éxécution avec je crois indice hors limite

if i<list.count then

begin

label1.Caption:= list.Strings[i];
inc(cpt);

end;

D'autre part il vaut mieux utiliser la méthode free plutot que destroy-->list.free

on peut aussi crée la liste en plaçant une listbox (au moins pour
essayer et remplir les items en cliquant sur les 3 points ça ouvre
l'éditeur)

la procédure devient alors

if i<listbox1.count then


begin


label1.Caption: =listbox1.Strings[i];

inc(cpt);


end;



@+

jlen
0
Sat83 Messages postés 166 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 13 octobre 2008
12 mars 2006 à 21:50
@jlen100:
C'est ce que j'avais indiqué par "verifié que l'entier cpt ne depasse pas la fin de la liste" ;)

Par contre dans mon post le "i" n'a rien a faire là, il faut bien sur le remplacé par cpt! En effet comme tu l'incremente a chaque clique sur le bouton, c'est evidemment pour prendre la String suivante dans la TStringList! Désolé pour la boulette!

Et pour le free jlen100 a tout a fais raison! c'est juste une mauvaise habitude que j'arrive pas a perdre d'utilisé destroy!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
12 mars 2006 à 22:01
sat83 excuse moi je n'avais pas vu la fin de la phrase

pour destroy c'est surtout si la list n'a pas été initialisée sur si le pointeur est à nil que ça plante

free verifiant que le pointeur n'est pas à nil avant d'appeler destroy



@+

jlen
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
12 mars 2006 à 22:04
j'ai envoyé trop vite

je voulais juste rajouter que cocowz débutant en DELPHI il vaut mieux
être le plus didactique possible (lui indiquer comment on teste la fin
de table par exemple)



@+

jlen
0
cocowz Messages postés 89 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 25 février 2007
12 mars 2006 à 22:50
Jlen100 oui c'est vrai que je debute. et aussi que Sat83 ma dit est un peu difficile pour moi. Sinon merci
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
12 mars 2006 à 22:56
tout le monde à débuter un jour et paris ne s'est pa fait en un jour alors surtout n'hésite pas poser des questions



@+

jlen
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
13 mars 2006 à 08:32
aller je jette egalement un gravier dans la marre :

var
// on peu initialiser une variable globale
it : integer = 0;


const
// un tableau constant qui contient les textes a afficher
phrase : array[1..9] of string = (
'Bonjour!',
'Ca va?',
'Moi oui ...',
'Delphi c'est cool',
'Tiens erreur 062',
'Hostie!...',
'Caribou!...',
'J''te maudit!',
'Au revoir...'
);

procedure button1.click;
begin
// tant qu'on est inferieur a dernier index du tableau (9)
// on incremente "it"
if it < high(phrase) then inc(it);
// on affiche la phrase sur le boutton.
button1.caption := phrase[it];
// si on est a la derniere phrase
if it = high(phrase) then begin
// on attend 5 secondes
sleep(5000);
// et on quitte l'appli
Closes;
end;
end;

<hr size="2" width="100%">La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.
<hr>
0
Rejoignez-nous