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

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [delphi] utilisation du findComponent dans une fonction if?

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[delphi] utilisation du findComponent dans une fonction if?

n°522322
de@thm@ste​r of hell
D.o.H pour les zintimeuh ^^
Posté le 24-09-2003 à 16:15:42  profilanswer
 

:hello:  
 
comment faire pour inserer une fonction findcomponent dans une IF ?
 
ce que je veux faire en gros c est une boucle de 0 a 14 (ca, ca va :D)
a l interieur de laquel il y a un IF qui reuni les condition suivante
trouver un composant (Tcheckbox) d un certain nom complementé d une variable I  
mais qu il ne selectionne que les boites qui sont cochés
 
ca fait 2plombe que je suis dessus et je sais pas (plus ) du tout quoi faire =)
 
j ai essayé (entre autre)
IF FindComponent (Format('checkbox%d', [i])) then  
(le pb c est ou mettre '.checked:=true' et que cela fonctionne :D
 
mici de m eclairer =)


---------------
Feedback      D.o.H  -  Seine Saint Denis  -  93
mood
Publicité
Posté le 24-09-2003 à 16:15:42  profilanswer
 

n°522333
jagstang
Pa Capona ಠ_ಠ
Posté le 24-09-2003 à 16:24:40  profilanswer
 

donne un bout de code stp

n°522402
antp
Super Administrateur
Champion des excuses bidons
Posté le 24-09-2003 à 17:31:23  profilanswer
 

Ouais poste ton code.  
Sinon tu mets le résultat de FindComponent dans une variable, ça te permet de faire plusieurs actions dessus et de tester si il l'a bien trouvé.
 
PS: FindComponent, dans la majorité des cas, c'est un peu crado hein :D T'as plutôt intérêt à faire un tableau de TCheckbox (rempli dans le OnCreate par exemple), ça évite de devoir se baser sur les noms et de devoir faire des recherches inutiles à chaque accès.


Message édité par antp le 24-09-2003 à 17:31:41

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°522551
KrzAramis
Help Me
Posté le 24-09-2003 à 20:15:14  profilanswer
 

antp a écrit :

PS: FindComponent, dans la majorité des cas, c'est un peu crado hein :D T'as plutôt intérêt à faire un tableau de TCheckbox (rempli dans le OnCreate par exemple), ça évite de devoir se baser sur les noms et de devoir faire des recherches inutiles à chaque accès.


 :whistle:  
tu devrais mettre ce paragraph en signature car je crois bien que ca fait la 3 eme fois que tu donnes cette astuce  [:ddr555]  
 
@++

n°522571
antp
Super Administrateur
Champion des excuses bidons
Posté le 24-09-2003 à 20:32:05  profilanswer
 

bah quoi, ça me fait mal au coeur de savoir tout ce que doit faire FindComponent à chaque appel :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°522589
de@thm@ste​r of hell
D.o.H pour les zintimeuh ^^
Posté le 24-09-2003 à 20:41:10  profilanswer
 

bah en fait .. le code j en ai pas trop =)

procedure TMain.Button4Click(Sender: TObject);
var
  i: Integer;
begin
i:=0;
while (i<14) do
begin
 
IF checkbox0.Checked:=true then
s := idhttp1.Get(Format('http://blabla.com/bla.php?%s&%d', [id, i]));  // la 1ere variable est pas definie c est normal [:ddr555]
end;
 
IF checkbox1.Checked:=true then
begin
s := idhttp1.Get(Format('http://blabla.com/bla.php?%s&%d', [id, i]));  // la 1ere variable est pas definie c est normal [:ddr555]
end;
end;
 
....
 
IF checkbox13.Checked:=true then
begin
s := idhttp1.Get(Format('http://blabla.com/bla.php?%s&%d', [id, i]));  // (la 1ere variable est pas definie c est normal [:ddr555] il doit etre recuperer en fonction de I =)  )
end;
 
end;
end.
 


voila a quoi ca devrais ressembler sans la boucle :)
 
et avec bah a part ce que j ai mis plus haut je sais po =)
 

antp a écrit :


Sinon tu mets le résultat de FindComponent dans une variable, ça te permet de faire plusieurs actions dessus et de tester si il l'a bien trouvé.
 


lecompo := FindComponent (Format('checkbox%d', [i]));
 if [g]lecompo.checked:=true[/g] then
  begin
// le lien
end;
 
qq chose comme cha? mais ce qui a en gras je sais pas quoi mettre et comme c est ecrit ca marche pas :'(


 
PS: FindComponent, dans la majorité des cas, c'est un peu crado hein :D T'as plutôt intérêt à faire un tableau de TCheckbox (rempli dans le OnCreate par exemple), ça évite de devoir se baser sur les noms et de devoir faire des recherches inutiles à chaque accès.


 
pour ce que tu dis en second je sais pas si ce sera possible,  
en gros (ce que je comprend :D) c est creer une liste de tcheckbox dans la boucle et de lui donner ces caracteristiques apres? (comme l exemple qu il y a dans delphi ?
celui ci
 

procedure TForm1.Button1Click(Sender: TObject);
 
var
  i: Integer;
const
  NamePrefix = 'MyEdit';
begin
  for i := 1 to 20 do begin
    TEdit.Create(Self).Name := NamePrefix + IntToStr(i);
    with TEdit(FindComponent(NamePrefix + IntToStr(i))) do
    begin
      Left := 10;
      Top := i * 20;
      Parent := self;
    end;
  end;
end;


 
mon probleme c est que ce que je fait la c est plutot une autre etape de mon logiciel.
la 1ere est de ce connecter a un site de recuperer des données et de les dispacher dans mes ptit Tedit & Tcheckbox .. =)
donc en fait mes Tcheckbox ont deja des noms donc si je fait comme cha ca va m en remettre par dessus , nan?


---------------
Feedback      D.o.H  -  Seine Saint Denis  -  93
n°522593
antp
Super Administrateur
Champion des excuses bidons
Posté le 24-09-2003 à 20:48:52  profilanswer
 

En private dans les attributs de la Form :
FCheckboxes: array[0..9] of TCheckbox; // si 10 checkbox
 
Dans le OnCreate de la Form :
FCheckboxes[0] := Checkbox0;
FCheckboxes[1] := Checkbox1;
//etc. jusqu'à 9 (c'est lourd mais on ne le fait qu'une fois)
 
Ensuite quand tu dois accéder à une Checkbox tu fais FCheckboxes[i] simplement
Donc tu peux l'utiliser dans tes boucles, et en plus tu peux faire  
for i := Low(FCheckboxes) to High(FCheckboxes) pour ne pas devoir te soucier de la taille du tableau ;)
En plus ici tu n'est pas obligé de donner des noms numérotés à tes composants (bon ici ça change peut-être rien).
 
et ton " if lecompo.checked:=true then " qui marche pas c'est peut-être parce que tu fais une assignation au lieu d'une comparaison :p


Message édité par antp le 24-09-2003 à 20:49:09

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°522614
de@thm@ste​r of hell
D.o.H pour les zintimeuh ^^
Posté le 24-09-2003 à 21:13:49  profilanswer
 


c est ou le on creat de la form  :heink: ??
 
sinon pour le if " if lecompo.checked:=true then"  
le pb viens du fait qu il me dise que "checked" c est un composant non identifié :-/
 


---------------
Feedback      D.o.H  -  Seine Saint Denis  -  93
n°522630
antp
Super Administrateur
Champion des excuses bidons
Posté le 24-09-2003 à 21:24:17  profilanswer
 

si lecompo était du type TCheckbox ça serait peut-être mieux alors... mais je pouvais pas deviner de quel type il était dans ton code :p
 
le OnCreate de la Form il est dans les Events, comme tous les autres events. Ou alors tu cliques 2x dans le fond de la Form, ça marche aussi (à moins que t'aies un panel dans le fond ou un truc du genre, évidemment).


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°522703
de@thm@ste​r of hell
D.o.H pour les zintimeuh ^^
Posté le 24-09-2003 à 22:03:15  profilanswer
 

cha marche =)
 
tiens tant qui a ce sujet comment on fait une pause dans une boucle?
 
j avais deja essayé y a longtemps en utilisant..  
heu c etait sleep() je crois mais sa mettait tout le prog en pause
:-/


---------------
Feedback      D.o.H  -  Seine Saint Denis  -  93
mood
Publicité
Posté le 24-09-2003 à 22:03:15  profilanswer
 

n°522707
antp
Super Administrateur
Champion des excuses bidons
Posté le 24-09-2003 à 22:07:40  profilanswer
 

Si tu attends un événement :
 
while Paused do
  Application.HandleMessage();
 
Paused est pas exemple un booléen
 
Sinon bah ça dépend ce que tu veux, c'est pas assez précis ta question :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°522709
de@thm@ste​r of hell
D.o.H pour les zintimeuh ^^
Posté le 24-09-2003 à 22:13:33  profilanswer
 

=)
 
bah en fait je voudrai faire une pause de qq secondes entre chaque requette au serveur ,
car si j en fait trop (trop vite) le serveur bloque le compte pour 20minutes =)


---------------
Feedback      D.o.H  -  Seine Saint Denis  -  93
n°522716
antp
Super Administrateur
Champion des excuses bidons
Posté le 24-09-2003 à 22:24:41  profilanswer
 

ha ok
bah essaie ça :
 
for i := 0 to 50 do
begin
 Sleep(100);
 Application.HandleMessage;
end;
 
y a peut-être plus propre comme méthode mais bon


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°522721
de@thm@ste​r of hell
D.o.H pour les zintimeuh ^^
Posté le 24-09-2003 à 22:32:59  profilanswer
 

oki merchi ^^
 
j essayerai cha demain :) car faut que j aille pioncer demain matin dst de meca [:ddr555]


---------------
Feedback      D.o.H  -  Seine Saint Denis  -  93
n°523064
KrzAramis
Help Me
Posté le 25-09-2003 à 11:44:22  profilanswer
 

antp a écrit :

bah quoi, ça me fait mal au coeur de savoir tout ce que doit faire FindComponent à chaque appel :D


d ou mon post  [:rofl]


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

  [delphi] utilisation du findComponent dans une fonction if?

 

Sujets relatifs
fonction de comparaison entre plusieurs variablesfonction mail et EasyPHP
[delphi]Déplacer des fichiers?[DELPHI] Comment avoir le look XP ?
[DELPHI] récupérer le nom d'un fichier ...Le fonction HTML_ENTITY_DECODE [ - Job's Done - ]
[Delphi] Recuperer des valeurs contenues dans une page webun evenement en fonction du choix de la JComboBox
[Delphi] Stockage d'un mot de passe. [Résolu][PHP]Fonction avec array
Plus de sujets relatifs à : [delphi] utilisation du findComponent dans une fonction if?


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