Effacer plusieurs Label crées dynamiquement

Résolu
Don0Choa Messages postés 104 Date d'inscription dimanche 29 octobre 2000 Statut Membre Dernière intervention 12 décembre 2005 - 6 mars 2005 à 13:47
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 - 7 mars 2005 à 00:33
Bonjour,
voila je crée dynamiquement plusieur TLabel, pour les diferancier des autres labels du programme je leu attribut un Tag:=1 ...
Cela devrait normalement me permettre au moment venu d'effacer tous ces labels j'ai donc ce code pour les effacer :

for i:=0 to ComponentCount-1 do
if Components[i].Tag=1 then Components[i].Free;

Le probleme c'est qu'a chaque fois j'ai une erreur dy type : List Index of bounds(20)
et apres ca la boucle s'arrete ce qui fait qu'il me reste encore un tas de label.

Voial j'espere avoir été clair

Alors si uelqu'un a une solution a mon probleme... merci :D

++
A voir également:

5 réponses

japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
6 mars 2005 à 16:26
Salut,

Essaye comme ceci :



for i := ComponentCount-1 downto 0 do

if Components[i].Tag = 1 then

Components[i].Free;



Bonne prog'
3
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
6 mars 2005 à 16:33
Heu... l'explication :



Si ta boucle commence par l'index 0, la suppression du composant fausse la donne : l'étendue de la boucle reste identique, mais le nombre de composants a diminué. Il y aura donc forcément dépassement d'index.



Bonne prog'
0
Don0Choa Messages postés 104 Date d'inscription dimanche 29 octobre 2000 Statut Membre Dernière intervention 12 décembre 2005
6 mars 2005 à 16:36
ah ben c'est niquel puis j'avais pas d utout pensé a ca!

merciiii t'assure chaussure !

++
0
Don0Choa Messages postés 104 Date d'inscription dimanche 29 octobre 2000 Statut Membre Dernière intervention 12 décembre 2005
6 mars 2005 à 17:42
Hm euh... en fait j'ai encore un ptit problème,
maintenant quand j'éxécute cette procédure j'ai pratiquement toujours des Abstract Error
ou Access violation ...

T'as une idée du probleme??

++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
7 mars 2005 à 00:33
Désolé, je ne vois pas.

A priori, il ne me semble pas que ça puisse venir de ce bout de code...



Bonne prog'
0
Rejoignez-nous