Mr7Bungle
Messages postés17Date d'inscriptionvendredi 1 octobre 2004StatutMembreDernière intervention30 octobre 2007
-
5 mars 2007 à 11:51
Mr7Bungle
Messages postés17Date d'inscriptionvendredi 1 octobre 2004StatutMembreDernière intervention30 octobre 2007
-
15 mars 2007 à 10:15
Bien le bonjour je vous explique mon soucis !
J'ai, sur une form, 150 label qui tour à tour seront utilisés. J'aurai voulu indexer tout ces label dans tableau de label :
TbLabel : array [0..150] of Tlabel;
et lorsqu'au form load je rempli mon tableau
TbLabel[0] := label7;
Tblabel[1] := label9;
.....
et au moment d'inserer, j'ai un super beau message d'erreur "Label7" n'est pas un identificateur valide.
D'ou vient cette erreur et comment puis-je y remédier?
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 5 mars 2007 à 12:02
Pourquoi as-tu besoin de 150 labels ?!!!
Sinon tu les crée à l'execution. Le probleme de ta technique c'est qu'il peut y avoir des conflits dans les noms de composants.
Essaie:
for i := 0 to 150 do
begin
with TLabel.create () do
begin
name := lbl + IntToStr (i); // avec i le numero de composant
// ici tu remplit d'autre propriétés
end
end
Mais pour moi si tu a besoin de 150 labels c'est qu'il y a une erreur de conception à la base.
Mr7Bungle
Messages postés17Date d'inscriptionvendredi 1 octobre 2004StatutMembreDernière intervention30 octobre 2007 5 mars 2007 à 12:13
Je t'explique
Ce test est destiné aux enfants, on a deux frame
une contient le modele et l'autre ou l'enfant dois reproduire.
Donc dans ce test ci , le modele c'est un chemin tracé dans la premiere frame vec quelque arbres en deco
et dans la seconde frame, on a un point de depart, et des fleches de directions et si l'enfant clic sur l'image la fleche vers le haut et bien je vais deplacé un label precedement crée pour le mettre entre le point d'arrivé et de départ. La frame est en quelque sorte "cadrillé" et je recence donc 48 label pour faire les chemins horizontaux et autant pour les verticaux
je ne sais pas si c'est la meilleur solution mais etant sous la contrainte de divers delai, j'esssaie d'adopté un bon compromis entre rapidité et qualité sans forcemeent chercher à tout optimisé au Ko de ram pres =)
et donc appart si tu as une autre methode a mon conseiller, j'aimerai pouvoir au chargement de la fenetre , charger tout mes label dans mon tableau .
sylvunix
Messages postés93Date d'inscriptionmardi 11 avril 2006StatutMembreDernière intervention 4 mars 2009 5 mars 2007 à 13:14
Sans revenir sur le fait que la solution que tu cherches à mettre en place ne soit pas la meilleure, je ne comprend néanmoins pas pourquoi elle ne fonctionne pas.
Dans quel évènement as-tu codé le remplissage de ton tableau ? Le code est-il dans la même form que tes labels (tu parles de frames à un certain moment) ?
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 5 mars 2007 à 14:06
@ Mr7bungle : et comment veux-tu qu'on t'aide si tu ne donnes pas le bout de code qui pose problème ?
Sorti de son contexte, le message d'erreur ne nous éclaire pas puisque dans
l'absolu "Label7" est un nom tout à fait valide acceptable par le
compilateur...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Mr7Bungle
Messages postés17Date d'inscriptionvendredi 1 octobre 2004StatutMembreDernière intervention30 octobre 2007 5 mars 2007 à 14:22
Donc non il n'y a pas de frame c'est juste un carré qui decore.
J'ai codé dans une procedure que j'ai bien declaré, les labels sont bien sur la form.
Le lien que tu m'a donné cirec, la personne code créé dynamiquement ses label ! dans mon cas j'aimerai juste executer une procedure qui rempli le tableau des label deja presents sur la form.
Pour reprendre les propos de Japee : ton erreur est normal : tu n'as pas définit la propriété Name de tes Labels.
En fait tu as créé dynamiquement des labels sans leur attribuer de nom. Puis ensuite tu les appelles par leurs noms : imagine que tu n'as pas de nom et que je t'appelle : tu te reconnaitra pas : c'est normal non ? Ben c'est exactement ce qui se passe ici. la solution n'a été donnée par Japee à toi de l'appliquer.
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 5 mars 2007 à 17:50
pas de () quand pas d'arguments !
sinon, pour reagir :
le tableau de label, oui c'est une idée, mais regardez aussi la remarque de DelphiProg ... et il a raison, cela peu amener des problemes, rare, mais ca peu arriver.
150 Labels, de toute façon y'a un probleme. c'est beaucoup trop !
je n'ai pas bien compris le fonctionnement du logiciel ... mais on pourrait aisement remplacer tout ça en dessinant tout ce qu'il faut dans une TPaintBox.
et la, on redescend a 1 objet uniquement.
regarde mes sources Pazzu et MasterMind, tu verras que c'est pas enorme le nombre d'objets sur les fiches :)
Mr7Bungle
Messages postés17Date d'inscriptionvendredi 1 octobre 2004StatutMembreDernière intervention30 octobre 2007 15 mars 2007 à 10:15
Bien le bonjour désolès pour cette longue absence, mais je suis tombé malade comme un chien et puis j'ai enchaine sur une formation microsoft, ce qui m'a forcé a mettre de côté temporairement se projet. Merci pour toute vos reponses.
Je voulais revenir sur le paintbox, est il possible de definir un composant dans le paintbox? je m'explique:
Est il possible si je dessine un carré dans le paint box de lui attribuer des methodes & procedures?