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

  FORUM HardWare.fr
  Programmation

  [Delphi5] Boucle et contrôle (titre~?)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Delphi5] Boucle et contrôle (titre~?)

n°31456
AGA
La boîte à Bokeh!
Posté le 14-05-2001 à 14:15:19  profilanswer
 

La situatiuon :=>>
un fiche + 10 case à cocher (checkbox :) ), leur nom est du type ccAdrX où X represente un nombre (ccAdr1, ccAdr2 etc...)
un tableau du style tabAdr : ARRAY [1..9] OF STRING;
J'ai fait ça :
...
ccAdr1.Caption:=tabAdr[1];
ccAdr2.Caption:=tabAdr[2];
ccAdr3.Caption:=tabAdr[3];
ccAdr4.Caption:=tabAdr[4];
ccAdr5.Caption:=tabAdr[5];
...
 
Et bien figurer vous que je suis sûr qu'on peut faire ça avec une boucle...mais comment ?
For i:=1 TO 9 DO
  ccAdr[#0000fa]?i?[#0000fa].caption:=tabAdr[i]
END;
 
Voili :sweat:


---------------
ma vie, ma carrière! - Un trait d’union entre des photos et des mots.
mood
Publicité
Posté le 14-05-2001 à 14:15:19  profilanswer
 

n°31457
AGA
La boîte à Bokeh!
Posté le 14-05-2001 à 14:16:09  profilanswer
 

AGA a écrit a écrit :

La situatiuon :=>>
un fiche + 10 case à cocher (checkbox :) ), leur nom est du type ccAdrX où X represente un nombre (ccAdr1, ccAdr2 etc...)
un tableau du style tabAdr : ARRAY [1..9] OF STRING;
J'ai fait ça :
...
ccAdr1.Caption:=tabAdr[1];
ccAdr2.Caption:=tabAdr[2];
ccAdr3.Caption:=tabAdr[3];
ccAdr4.Caption:=tabAdr[4];
ccAdr5.Caption:=tabAdr[5];
...
 
Et bien figurer vous que je suis sûr qu'on peut faire ça avec une boucle...mais comment ?
For i:=1 TO 9 DO
  ccAdr?i?.caption:=tabAdr[i]
END;
 
Voili :sweat:



[#0055aa]


---------------
ma vie, ma carrière! - Un trait d’union entre des photos et des mots.
n°31543
JWhy
je peux plier (héhé)
Posté le 14-05-2001 à 16:56:59  profilanswer
 

je ne crois pas que ca soit faisaible aussi simplement...
 
il faut, je pense, qu'a la creation de ta form, tu parcours tous tes composants, et si c'est une checkbox avec un nom qui commance par 'ccAdr', l'ajouter a un tableau de checkbox puis apres, utiliser le tableau pour changer les captions de tes checkbox
 
par ex:

Code :
  1. type
  2.   TCheckArray = array[1..9] of TCheckbox;
  3.   tabAdr = array [1..9] OF string
  4. var
  5.   FCheckBoxes : TCheckArray;
  6. procedure TForm1.FormCreate(Sender: TObject);
  7. var
  8.   iIndex, iChkCount, iCmpCount, iPos : integer;
  9.   chkCheck : TCheckBox;
  10. begin
  11.   iCmpCount := Form1.ComponentCount;
  12.   // on parcourt tous les composants
  13.   for iIndex := 0 to iCmpCount - 1 do
  14.   begin
  15.     // on ne prend en compte que les checkboxs
  16.     if (Form1.Components[iIndex] is TCheckBox) then
  17.     begin
  18.       chkCheck := (Form1.Components[iIndex] as TCheckBox);
  19.       // on verifie sa taille
  20.       if length(chkCheck.Name) = length('ccAdrX' ) then
  21.         // on verifie son nom
  22.         if Copy(chkCheck.Name,1,length('ccAdr' )) = 'ccAdr' then
  23.         begin
  24.           // on assign la checkbox a la bonne position du tableau
  25.           // position qui est donnee par le dernier caractere composant le nom
  26.           iPos := StrToInt(chkCheck.Name[length(chkCheck.Name)]);
  27.           FCheckBoxes[iPos] := chkCheck;
  28.         end;
  29.     end;
  30.   end;
  31. end;


 
et donc maintenant, tu as un tableau avec toutes tes checkboxes et tu peux le parcourir dans une boucle pour modifier les captions ou autres proprietes
 
ps: c'est pas dit que le code marche, je l'ai fait comme ca de tete !

 

[edit]--Message édité par JWhy--[/edit]


---------------
www.alliancefrancophone.org ... Home is where the heart is
n°31594
antp
Super Administrateur
Champion des excuses bidons
Posté le 14-05-2001 à 17:58:29  profilanswer
 

Le système avec les [#...] c'est quoi ? C'est possible de faire un truc de ce genre ?
 
Ça peut tj etre utile...

 

[edit]--Message édité par antp--[/edit]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°31700
AGA
La boîte à Bokeh!
Posté le 15-05-2001 à 08:12:57  profilanswer
 

JWhy a écrit a écrit :

je ne crois pas que ca soit faisaible aussi simplement...
 
il faut, je pense, qu'a la creation de ta form, tu parcours tous tes composants, et si c'est une checkbox avec un nom qui commance par 'ccAdr', l'ajouter a un tableau de checkbox puis apres, utiliser le tableau pour changer les captions de tes checkbox
 
par ex:

Code :
  1. type
  2.   TCheckArray = array[1..9] of TCheckbox;
  3.   tabAdr = array [1..9] OF string
  4. var
  5.   FCheckBoxes : TCheckArray;
  6. procedure TForm1.FormCreate(Sender: TObject);
  7. var
  8.   iIndex, iChkCount, iCmpCount, iPos : integer;
  9.   chkCheck : TCheckBox;
  10. begin
  11.   iCmpCount := Form1.ComponentCount;
  12.   // on parcourt tous les composants
  13.   for iIndex := 0 to iCmpCount - 1 do
  14.   begin
  15.     // on ne prend en compte que les checkboxs
  16.     if (Form1.Components[iIndex] is TCheckBox) then
  17.     begin
  18.       chkCheck := (Form1.Components[iIndex] as TCheckBox);
  19.       // on verifie sa taille
  20.       if length(chkCheck.Name) = length('ccAdrX' ) then
  21.         // on verifie son nom
  22.         if Copy(chkCheck.Name,1,length('ccAdr' )) = 'ccAdr' then
  23.         begin
  24.           // on assign la checkbox a la bonne position du tableau
  25.           // position qui est donnee par le dernier caractere composant le nom
  26.           iPos := StrToInt(chkCheck.Name[length(chkCheck.Name)]);
  27.           FCheckBoxes[iPos] := chkCheck;
  28.         end;
  29.     end;
  30.   end;
  31. end;


 
et donc maintenant, tu as un tableau avec toutes tes checkboxes et tu peux le parcourir dans une boucle pour modifier les captions ou autres proprietes
 
ps: c'est pas dit que le code marche, je l'ai fait comme ca de tete !
 
 




 
merci JWhy faut que j'essaie ce soir
Effectivement tout seul j'aurais pas trouvé!
...Je vais être obligé de mettre dans les crédits de mes miniSofts :
...Avec la participation de JWhy le grand  :lol:  
a+


---------------
ma vie, ma carrière! - Un trait d’union entre des photos et des mots.
n°31702
rufo
Pas me confondre avec Lycos!
Posté le 15-05-2001 à 08:33:16  profilanswer
 

non, en fait, ce qu'il faut faire, c'est récupérer le tableau des composants (control, je crois) de ta fiche.  
Ca ferait un truc du genre:
(NomFichie.Control[i]) as (CheckBox).Caption = tab[i];

n°31703
rufo
Pas me confondre avec Lycos!
Posté le 15-05-2001 à 08:33:42  profilanswer
 

moi, je m'en suis servi pour manipuler des onglets...

n°31713
antp
Super Administrateur
Champion des excuses bidons
Posté le 15-05-2001 à 09:26:27  profilanswer
 

rufo a écrit a écrit :

non, en fait, ce qu'il faut faire, c'est récupérer le tableau des composants (control, je crois) de ta fiche.  
Ca ferait un truc du genre:
(NomFichie.Control[i]) as (CheckBox).Caption = tab[i];




 
ça va foirer si il y a autre chose que des checkbox.
tab sera pas assez grand, et les i de control seront pas les mêmes que les i de tab.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°31733
Miles V
Posté le 15-05-2001 à 10:05:00  profilanswer
 

Le plus simple :
 
  for i := 1 to 9 do
    TCheckBox(FindComponent('ccAdr' + intToStr(i))).Caption := tabAdr[i];

n°31737
AGA
La boîte à Bokeh!
Posté le 15-05-2001 à 10:10:10  profilanswer
 

Miles V a écrit a écrit :

Le plus simple :
 
  for i := 1 to 9 do
    TCheckBox(FindComponent('ccAdr' + intToStr(i))).Caption := tabAdr[i];




bon, ba j'ai choisit ta solution : la plus simple et ressemble à mon idée théorique ET un plus elle MARCHE... :)  :)  :)


---------------
ma vie, ma carrière! - Un trait d’union entre des photos et des mots.
mood
Publicité
Posté le 15-05-2001 à 10:10:10  profilanswer
 

n°31738
Miles V
Posté le 15-05-2001 à 10:11:49  profilanswer
 

Super, j'ai gagné ! :D

n°31808
antp
Super Administrateur
Champion des excuses bidons
Posté le 15-05-2001 à 12:42:24  profilanswer
 

Miles V a écrit a écrit :

Le plus simple :
 
  for i := 1 to 9 do
    TCheckBox(FindComponent('ccAdr' + intToStr(i))).Caption := tabAdr[i];




 
J'y ai même pas pensé alors que j'avais utilisé FindComponent il y a une semaine pour un autre problème


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°31833
JWhy
je peux plier (héhé)
Posté le 15-05-2001 à 13:56:20  profilanswer
 

j'aurais appris qqchose aujourd'hui ...
 :jap:


---------------
www.alliancefrancophone.org ... Home is where the heart is

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

  [Delphi5] Boucle et contrôle (titre~?)

 

Sujets relatifs
[HTML] Changement titre msg via formulaireDelphi5 boucel de lecture et *.ini
site Web: qui saurait faire deplacer un titre dans une page ?J'ai un site flash et je voudrai mettre un son en boucle?
delphi5 need JWhyTakiner le BIP du Haut parleur avec Delphi5
[Delphi5] Sa veux dire quoi " necessite une finalisation -non ...gere les controles similaires dans une boucle
[vb] casser une boucleFaire une pause dans l'éxécution d'une boucle en C++ ?
Plus de sujets relatifs à : [Delphi5] Boucle et contrôle (titre~?)


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)