Bonjour,
-----------------------------------------------------------------
VERSION SIMPLE DE MA QUESTION :
Existe-il une fonction permettant de récupérer (ex: dans un tableau quelconque ou autre chose) la liste des propriétés d'un composant ?
-----------------------------------------------------------------
VERSION DETAILLEE DE MA QUESTION :
je doit convertir dynamiquement a l'execution, les composants "delphi standard" (a savoir TButton etc...) en d'autres type de composants (ex: je veux obtenir des composants TMS donc un TButton deviendra dans ma form principale un TAdvButton).
Je m'explique, en fait j'ai une form deja existante (appellont là Form1) qui utilise des composants delphi standard (TPanel, TButton, etc...), cette form je la crée au lancement de mon programme mais je ne l'affiche pas. ensuite j'ai une 2ieme Form (appellont là Form2) qui elle est vierge de tout composants mais visible.
Mon objectif est donc de recréer sur cette Form2, tout les composants de la Form1 mais en utilisant les équivalent TMS de ces composants.
Actuellement je réalise ceci en ayant au préalable listé sur un bout de papier toutes les propriétés des composants delphi standard (ex: TButton) et leur équivalent en composant TMS (ex: le TButton.parent = TadvButton.parent, etc...). Le tout en laissant de coté les éventuelles propriétés d'un TButton qui n'existerait pas dans un TadvButton.
Je réalise donc des copies conforme de TButton en TadvButton (les propriétés Top, Left, Width, Caption, Name, etc... sont identiques, a l'exception du Parent qui bien evidemment est Form2 à la place de Form1).
Maintenant que vous connaissez mon objectif, voici ma question :
Plutot que de coder tout pleins de lignes de code comme ceci :
Existe-il une fonction permettant de récupérer (ex: dans un tableau quelconque ou autre chose) la liste des propriétés d'un composant ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 if Form1.Components[i].ClassType = TButton then begin AdvButton := TAdvButton.Create(Form2); AdvButton.Parent := Form2; AdvButton.Name := TButton(Form1.Components[i]).Name; etc... pour toutes les propriétés
Cela me permettrait en effet d'alléger considérablement mon code si je pouvait mettre en place une fonction générale, qui, apres quelques tests tout simple, pouvait retourner le composant TMS équivalent au composant (quasi)inconnu passé en paramêtre.
Merci d'avance a vous tous pour votre attention et votre aide.
Partager