boucle while indentifiant variable - Delphi/Pascal - Programmation
Marsh Posté le 28-04-2003 à 11:43:53
Tu peux utiliser FindComponent
mais niveau perf ça sera moins performant que de mettre
Edit1.Text := IntToStr(i2);
Inc(i2, 2);
Edit2.Text := IntToStr(i2);
Inc(i2, 2);
Edit3.Text := IntToStr(i2);
Inc(i2, 2);
etc.
Et ta boucle est foireuse :
While (i < 4) do I:=i+1 ;
ça revient au même que
i := 4;
Marsh Posté le 28-04-2003 à 11:58:57
j vais essayé ,
par contre je me dis que pour mon 1er programme ca va pas le faire :-/
car j extrait les données d un texte ,
je doit avoir une 20ene de parties,
ressemblant a cha
// gouvernement |
me dites po que c est pas bo , ca marche c est l important
le probleme donc , c est que tout ces codes doivent etre fait 14 fois ( car 14 planetes differantes )
donc il faudrai que je puisse changer le nom des indentifant et des bouts de textes qui sont recherchés
donc tout ce qui est en bleu les valeurs doivent changer de 0-> 14
c est pour cela que dans le prog "simple" que j essai de faire au debut les valeurs changent en fonction de la valeur de i qui lui meme est multiplié par 2 celon sa valeur
Marsh Posté le 28-04-2003 à 12:03:20
Ouais bah si c'est pour trouver un contrôle d'après une chaîne contenant son nom, c'est bien FindComponent comme je l'ai dit
Marsh Posté le 28-04-2003 à 12:04:55
si tu veux une ptite idée sur ce que ca donne
http://wishmaster.free.fr/Project2.exe
il doit y avoir 14lignes pours les differantes planetes
Marsh Posté le 28-04-2003 à 12:06:27
antp a écrit : Ouais bah si c'est pour trouver un contrôle d'après une chaîne contenant son nom, c'est bien FindComponent comme je l'ai dit |
j ai pas tout compris , je vais chercher sur google qui est mon ami pour FindComponent
Marsh Posté le 28-04-2003 à 12:09:42
Code :
|
si jamais ça ne marche pas, essaie avec FindControl, je sais jamais lequel des deux il faut utiliser, et en me souvenant qu'un des deux est mauvais j'ai tj tendance à prendre le mauvais
Marsh Posté le 28-04-2003 à 12:26:05
ouaip ca marche
mais ca marche bizarrement
While (i=4) do I:=i+1; ; |
je suis obligé d appuyer plein de fois sur le bouton pour qu il remplisse chaque champ :'(
et il me remplis po le 1er (qui est le edit0 ?
Marsh Posté le 28-04-2003 à 12:36:39
peut-être parce que ton code n'est pas dans la boucle :
While (i=4) do I:=i+1; ;
// ici la boucle elle est finie hein ! un ";" ou un "end" finit la boucle
ton truc ça serait pas plutôt :
for i := 0 to 4 do
(ici ca ira de Edit0 à Edit4)
(et n'oublie pas de virer le i := i + 1 et l'initialisation à 0 avant la boucle, qui sont inutiles puisque le for s'en occupe
Marsh Posté le 28-04-2003 à 12:47:27
bhen ton i il sort d'où ? ne me dis pas que tu fous tout en global
Marsh Posté le 28-04-2003 à 12:58:47
bah en fait avec un while cha marche
i:=-1;
While (i<4) do
begin
I:=i+1;
i2:=i*2;
lecompo := FindComponent(Format('Edit%d', [i]));
if lecompo <> nil then
if lecompo is TEdit then
with lecompo as TEdit do
Text := IntToStr(i2);
end;
end;
Marsh Posté le 28-04-2003 à 14:58:31
si tu incrémentes ton i en début de boucle au lieu de la fin de boucle, non seulement il passera pas par 0 mais en plus tu risques de te gourer sur la condition de fin
et pour le for, je pige pas le prob
Marsh Posté le 28-04-2003 à 15:56:04
antp a écrit : si tu incrémentes ton i en début de boucle au lieu de la fin de boucle, non seulement il passera pas par 0 mais en plus tu risques de te gourer sur la condition de fin |
pour le for je sais pas non plus
par contre j ai un piti pb
j ai incéré ca ds mon prog tout marche et tout et tout
trop heureux
j ai changé les Tedit en Tlabel
pourtant j ai changé , Tlabel mais ca veux pu rien savoir
|
Marsh Posté le 28-04-2003 à 16:13:09
je viens d enlever tout ce que j ai fait..
y a pu rien qui marche meme un truc tout con avec un tedit
/me est bon pour tt recommencer
edit: cha marche c est trop biengg
Marsh Posté le 28-04-2003 à 11:27:50
c est encore moi
ca fait maintenant qq jours que j essaye de faire une boucle , et j y arrive pas , alors j ai decidé de décomposer ca, et de faire qq chose de simple
mais j suis encore bloqué
voila le code
begin
i := 0;
While (i < 4) do I:=i+1 ;
i2:=i*2;
Edit[#ff0000]+i[/#ff0000].Text:=IntToStr(I2);
end;
sur le programme j ai mis 5 Tedit appelé Edit0 -> Edit4
ce que je voudrais c est que le tedit a l interieur change en fonction de i pour que chaque tedit affiche une valeur de i2 en fonction de i
mon pb c est que je n arrive pas a trouver ou que se soit le moyen de changer la valeur numerique qui identifie mes differant tedit
---------------
Feedback D.o.H - Seine Saint Denis - 93