Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2963 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  boucle while indentifiant variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

boucle while indentifiant variable

n°374043
de@thm@ste​r of hell
D.o.H pour les zintimeuh ^^
Posté le 28-04-2003 à 11:27:50  profilanswer
 

:hello:  
c est encore moi :D
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é  :lol:  
 
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
mood
Publicité
Posté le 28-04-2003 à 11:27:50  profilanswer
 

n°374086
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-04-2003 à 11:43:53  profilanswer
 

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;
 
:D


Message édité par antp le 28-04-2003 à 11:44:51

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°374100
de@thm@ste​r of hell
D.o.H pour les zintimeuh ^^
Posté le 28-04-2003 à 11:58:57  profilanswer
 

:jap: 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
 
s := dataedit.Text ;
p := Pos('[#0000ff]&gov0=[/#0000ff]', s);
    if p > 0 then
      begin
        delete(s, 1, p + 5);
        p := Pos('[#0000ff]&govd0[/#0000ff]', s);
        delete(s, p, Length(s));
    if s = '0' then
       gouvname:='hypprotectorat';
    if s = '1' then
       gouvname:='autho';
    if s = '2' then
       gouvname:='demo';
    if s = '3' then
       gouvname:='dictat';
   end;
s := dataedit.Text ;   //nombre de jours
p := Pos('[#0000ff]&govd0=[/#0000ff]', s);
    if p > 0 then
      begin
        delete(s, 1, p + 6);
        p := Pos('[#0000ff]&ptype0=[/#0000ff]', s);
        delete(s, p, Length(s));
        gouvday:=s;
      end;
  [#0000ff]GeneralGouv0[/#0000ff].Text:= gouvname+' ('+gouvday+')';


 
me dites po que c est pas bo , ca marche c est l important  :whistle:  
 
le probleme donc , c est que tout ces codes doivent etre fait 14 fois ( car 14 planetes differantes :D)
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  
 
 :pt1cable:


---------------
Feedback      D.o.H  -  Seine Saint Denis  -  93
n°374110
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-04-2003 à 12:03:20  profilanswer
 

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


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°374114
de@thm@ste​r of hell
D.o.H pour les zintimeuh ^^
Posté le 28-04-2003 à 12:04:55  profilanswer
 

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


---------------
Feedback      D.o.H  -  Seine Saint Denis  -  93
n°374121
de@thm@ste​r of hell
D.o.H pour les zintimeuh ^^
Posté le 28-04-2003 à 12:06:27  profilanswer
 

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


 :whistle: j ai pas tout compris , je vais chercher sur google qui est mon ami pour FindComponent  :jap:


---------------
Feedback      D.o.H  -  Seine Saint Denis  -  93
n°374131
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-04-2003 à 12:09:42  profilanswer
 

Code :
  1. lecompo: TComponent;
  2. lecompo := FindComponent(Format('Edit%d', [i]));
  3. if lecompo <> nil then
  4.    if lecompo is TEdit then
  5.      with lecompo as TEdit do
  6.        Text := IntToStr(i2);


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


Message édité par antp le 28-04-2003 à 12:10:35

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°374161
de@thm@ste​r of hell
D.o.H pour les zintimeuh ^^
Posté le 28-04-2003 à 12:26:05  profilanswer
 

ouaip ca marche  
mais ca marche bizarrement :D
 

While (i=4) do I:=i+1;  ;
 
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;


 
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 ?


---------------
Feedback      D.o.H  -  Seine Saint Denis  -  93
n°374175
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-04-2003 à 12:36:39  profilanswer
 

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


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°374188
de@thm@ste​r of hell
D.o.H pour les zintimeuh ^^
Posté le 28-04-2003 à 12:46:31  profilanswer
 

[Error] Unit1.pas(36): For loop control variable must be simple local variable
 
voila pourquoi j utilise jamais les for :D


---------------
Feedback      D.o.H  -  Seine Saint Denis  -  93
mood
Publicité
Posté le 28-04-2003 à 12:46:31  profilanswer
 

n°374189
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-04-2003 à 12:47:27  profilanswer
 

bhen ton i il sort d'où ? ne me dis pas que tu fous tout en global [:totoz]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°374194
de@thm@ste​r of hell
D.o.H pour les zintimeuh ^^
Posté le 28-04-2003 à 12:50:01  profilanswer
 

begin
for i=0 to 4 do
i2:=i*2;  :whistle:


---------------
Feedback      D.o.H  -  Seine Saint Denis  -  93
n°374205
de@thm@ste​r of hell
D.o.H pour les zintimeuh ^^
Posté le 28-04-2003 à 12:58:47  profilanswer
 

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;
:D


---------------
Feedback      D.o.H  -  Seine Saint Denis  -  93
n°374426
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-04-2003 à 14:58:31  profilanswer
 

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 :D
 
et pour le for, je pige pas le prob :heink:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°374660
de@thm@ste​r of hell
D.o.H pour les zintimeuh ^^
Posté le 28-04-2003 à 15:56:04  profilanswer
 

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 :D
 
et pour le for, je pige pas le prob :heink:
 


pour le for je sais pas non plus :(
 
par contre j ai un piti pb :o
 
j ai incéré ca ds mon prog tout marche et tout et tout  
trop heureux :D
j ai changé les Tedit en Tlabel
 
pourtant j ai changé , Tlabel mais ca veux pu rien savoir  :cry:


 // PLANETS NAME
    s := dataedit.Text ;
    p := Pos('&planet0', s);
      if p > 0 then
      begin
        if i < 10 then
        delete(s, 1, p + 8)
        else
        delete(s, 1, p + 9);
        p := Pos('&x0', s);
        delete(s, p, Length(s));
      end;
 
   lecompo := FindComponent(Format('GeneralPlname%d', [i]));
  if lecompo is Tlabel then
    with lecompo as Tlabel do
      Caption := s;
 
 end;


---------------
Feedback      D.o.H  -  Seine Saint Denis  -  93
n°374734
de@thm@ste​r of hell
D.o.H pour les zintimeuh ^^
Posté le 28-04-2003 à 16:13:09  profilanswer
 

je viens d enlever tout ce que j ai fait..
y a pu rien qui marche meme un truc tout con avec un tedit :cry:
/me est bon pour tt recommencer
 
 
 
 
edit: cha marche c est trop biengg
 
 
:MEGAJAP:


Message édité par de@thm@ster of hell le 28-04-2003 à 19:07:01

---------------
Feedback      D.o.H  -  Seine Saint Denis  -  93

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  boucle while indentifiant variable

 

Sujets relatifs
[Socket Linux] Qd le client ferme, le serveur boucle sur le message[Python] Visibilité d'une variable
Utiliser une variable dans une requête SQLAccéder à une variable d'une unité, dans une autre unité
[ASM] Afficher un variable dwDéclarer un tableau à l'aide d'une variable..
[PHP] Problème d'upload et affichage de variabletableaux à dimension variable imbriqués :/
lancer une commande avec une variable comme paramètre[PHP] petit probleme avec boucle
Plus de sujets relatifs à : boucle while indentifiant variable


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR