bhen c'est pas grave de faire un for
si tu le fais pas en continu ça ralentira pas
t'as quand même pas des centaines de composants sur ta form...
sinon t'as la méthode FindComponent, mais si c'est pour faire un Find de 10 trucs ça sera plus rapide de mettre un for plutôt que 10 find.
darxmurf
En fait pour être plus claire je dois regarder si des CheckBox sont cochées ou pas et je veux pas me les faire toutes...
les noms c'est :
box_lundi
box_mardi etc...
avec un case ou des if ça donne trop de code...
a++
Darx
darxmurf
Merci !
Mais le truc c'est que j'ai une pettée de truc sur ma form, je veux pas les scanner tous... a un autre moyen ?
a++
Darx
antp
bon imaginons que les boutons soient sur la Form.
Code :
var
compo: TComponent;
i: Integer;
begin
for i := 0 to ComponentCount-1 do
if Components[i] is TButton then
(Components[i] as TButton).Caption := 'abcdef';
end;
dans le if tu peux même rajouter:
Code :
if (Components[i] is TButton) and AnsiStartsText('bouton_numero', Components[i].Name) then
pour ne changer que les boutons dont le nom commence par "bouton_numero"
y a moyen de faire ce que tu veux faire (donc donner le nom du composant sous forme de texte construit dynamiquement), mais faut passer par des fonctions non documentées (SetPropValue, etc...) donc faut voir si tu veux ça absolument, ou si la solution que je t'ai donnée suffit...
[edtdd]--Message édité par antp--[/edtdd]
darxmurf
UP ! Help !
darxmurf
Salut,
Peut-on utiliser une variable pour changer la propriété d'un objet ?
Exemple : j'ai 10 boutons : button_numero1, button_numero2 etc...
si je veux mettre tous les captions de ces boutons a : 'abcdef' ?
var texte : string;
i : integer;
begin
for i := 1 to 10 do
begin
texte := IntToStr(i);
button_numero+texte.caption := 'abcdef'; //c'est là que je veux utiliser la variable texte...
end;
end;