Renommer des composants

Soyez le premier à donner votre avis sur cette source.

Vue 4 807 fois - Téléchargée 512 fois

Description

Le but :
Renommer d?un bloc un ensemble de composants similaires avec un préfixe et un n° incrémenté sans avoir à se prendre la tête avec la propriété name de l'inspecteur d'objets...

L?utilité :
Pouvoir faire une boucle sur ces composants.
ex :
For i := 1 to 10 do begin
TLabel(FindComponent('MyLabel'+ IntToStr(i))).Caption := ...
end;

Comment ça marche ?
cf doc PDF

NB : Pour les feuilles QuickReport, s'assurer que la feuille est bien en mode dfm texte (clic droit sur la feuille)

Conclusion :


-> Loda : Merci à toi pour l'insertion de l'exécutable dans Delphi...

-> Delphiprog : Je reviens à la charge... Un petit tutoriel sur les experts delphi ? ;)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

sp40
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
9 -
Je vais regarder ton source... et peut être faire une mise à jour. Mais là, il va falloir pas mal de composants à renommer pour avoir un bon retour sur investissement !
sp40
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
9 -
Effectivement, quickreport est différent...
Sinon, je n'aime pas renommer les composants par l'inspecteur d'objet (quand je dois renommer mes 5 labels par exemple). Il y a toujours un risque de mettre une majuscule où il en faut pas, et donc de se planter sur le FindComponent (que tu n'aimes pas, je sais...). En plus c'est pas pratique (beaucoup de clics). Je n'aime pas non plus laisser les noms de composants tels que Delphi les nomme. A partir du moment où je m'en sers, je préfère leur donner un nom explicite.
Ceci dit, c'est vrai que le code est peut être un peu disproportionné par rapport à la fonctionnalité proposée, mais bon, ça me rend plus zen et à la longue, je récupèrerai peut-être mon investissement ? ;)
(sinon, tu trouves ça où le TButtonGroupBox ?)
Mais justement ! Là, avec ton code, c'est toi qui sort le bazooka ! lol

Si tu n'as que 5 labels, autant les renommer toi même ! Voire même laisser les noms label1, label2, ...

Et puis, si tu as toute une flopée de composants du même type (à remplir de la même façon en plus !), alors il doit forcément exister un équivalent "group" comme il existe les TRadioGroupBox et le TButtonGroupBox, ...

Mais peut être que dans le monde de QuickReport tout est différent. Je ne sais pas, je ne connais aps cet univers...
sp40
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
9 -
Eh bien, pour tout te dire, je ne suis pas tout à fait d'accord avec toi... ;)
Je pense qu'il y a des fois où il n'y a pas forcément besoin de sortir un bazooka pour tuer une mouche. J'utilise les tableaux le plus souvent, mais quand je dois gérer une petite fonction avec 5 ou 6 labels fixes (par exemple), je ne m'embête pas avec des variables. Jusqu'à présent, je n'ai pas trop eu à me plaindre de FindComponent, qui vaut ce qu'il vaut, mais suffit pour des petites fonctions.
OK pour les boucles de composants (bien que je préfère utiliser des tableau pour cela - FindComponent n'étant pas une routine très performante...).

Mais justement, le but de renommer ses composants ne serait-il pas plutôt une façon d'outrepasser la nomination par numéro incrémenté ? Pour pouvoir donner des noms de variables qui signifient quelque chose ?

Je ne dis pas cela pour décrédibiliser ton code mais plutôt comme remarque constructive en vue de mieux coder ....

Qu'en penses-tu ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.