Pourquoi créer un composant dynamiquement? [Résolu/Fermé]

Signaler
Messages postés
39
Date d'inscription
dimanche 10 novembre 2013
Statut
Membre
Dernière intervention
21 juin 2014
-
Messages postés
39
Date d'inscription
dimanche 10 novembre 2013
Statut
Membre
Dernière intervention
21 juin 2014
-
salut, j'ai une question concernant la création dynamique des composants, j'ai lu plusieurs articles à propos de ce sujet, mais j'ai une question qui nécessite une réponse, quelle est l'utilité de créer un composant dynamiquement plutôt que d'une façon statique? et est ce qu'il est nécessaire de donner des paramètres à un composant créé dynamiquement? et est ce qu'on peut changer les paramètres d'un composant créé statiquement? simples questions pour vous les pros, merci pour me répondre.

2 réponses

Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
132
Bonjour,


Hé bien, l'intérêt de l'objet étant entre autre de pouvoir l'employer sans qu'il soit complètement défini et donc d'implémenter des objets inexistants à la conception, cette possibilité se manifeste aussi avec les composants, et la création dynamique permet donc d'employer n'importe quel composant même non encore écrit...
Par ailleurs, les composants peuvent être très lourds et long à initialiser, et sachant que chaque boîte de dialogue est un composant qui en intègre d'autres à son tour, il serait inutile et coûteux en ressource de tout créer dès le lancement du programme... à quoi bon occuper de la mémoire en permanence et prendre le temps d'initialiser une boîte de dialogue «à propos...» qui ne sert pour ainsi dire jamais?
De plus, les composants sous delphi, comme toute classe dérivées de TPersistent, lisent leur propriétés à partir d'un flux (fichier de ressources) donc il est possible de modifier leurs paramètres après qu'ils soient garnis, il suffit pour ça d'intervenir au bon moment dans les événements constructeurs (OnCreate, OnShow..) et tout composant peut voir ses propriétés modifiées pour peu qu'elles soient ouvertes à l'écriture, tout dépend de la déclaration des champs: par exemple tout objet est activable et désactivable avec son champ "enabled", à la conception comme à l'exécution.
Pour l'exemple, on pourrait imaginer un logiciel de dessin qui utilise des composants pour définir les différents outils: l'intérêt résiderait dans le fait d'utiliser l'inspecteur d'objet pour les distinguer, et il serait possible de mettre à jour la liste et les propriétés de ces outils simplement en remplaçant un fichier de ressource (à priori, mais j'ai jamais essayé). Dans ce cas précis, l'intérêt de créer les composants dynamiquement est aussi évident puisqu'on utilise un seul outil à la fois et qu'ils peuvent être très nombreux...
Il faut imaginer qu'un composant est simplement une classe avec des propriétés publiées -donc facilement paramétrable avec l'inspecteur d'objet- et dont le code est partagé comme dans le cas d'une dll (via les paquets d'exécution) et on peut très bien les utiliser de manière très souple et en assez grand nombre, dès lors qu'on a besoin d'objets très spécialisés et facilement paramétrables, donc à partir du moment ou on sort du schéma basique de la fiche unique la création dynamique prend tout son sens...
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
39
Date d'inscription
dimanche 10 novembre 2013
Statut
Membre
Dernière intervention
21 juin 2014

Une explication très claire, merci beaucoup.