Owner

Signaler
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
-
Messages postés
304
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
10 mars 2012
-
salut à tous.


Est-il possible de changer le "owner" d'un composant à la conception?


Sinon comment fait-on en mode runtime?


Un exemple de la méthode "SetSubComponent" serait peut-être bienvenue
...


Merci

6 réponses

Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
18
Pour ceux que ça intéresse, j'ai trouvé une solution : c'est de créer les compos dynamiquement.
Mais je pense qu'il doit exister d'autres méthodes...
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
38
pourrait tu etre plus explicite ?

mais sinon oui, il faut créer le composant dynamiquement pour en changer le Owner ...

mais je ne vois pas trop l'interet de faire cela car la plupart du temps on ecrit : compo := TCompo.create(self);
... pourrais tu expliquer dans quel but tu cherche a faire cela ?
Messages postés
304
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
10 mars 2012

non mais il se fiche de moi ce browser tous mes propos sont partis à la
poubelle
bon tanpis je vais à l'essentiel !!

j'explique que la seconde méthode vite fait !!!

pour changer le parent qu'un composant visuel il n'est pas possible depuis l'inspecteur d'objet néanmoins une méthode simple consiste à :

1) On clique que le composant cible(l'enfant)
2) Ctrl + X (Action Couper)
3) On clique sur le nouveau parent
4) Ctrl + V (Action Coller)

dans le cas où il y aurait de nombeux enfants à déplacés !!!

5) Ctrl + Selection(avec la souris)
6) refaire les étapes 2 à 4

en espérant avoir été clair !!!
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
18
--->
fOxi


Le but de la manip est de pouvoir sauvegarder un TPanel avec tous ses composants gr
â
ce
à
:


WriteComponentResFile


et de le charger grâ
ce
à
:


ReadComponentResFile


Mais, pour ce faire, il faut que le TPanel soit le "owner" de ses compos "enfants"...


D'où, je dois faire, en mode dynamique :


compo := TCompo.Create(pnl_MonPanelConteneur);


Ca fonctionne, mais j'aurais bien voulu é
viter tout le code de cr
é
ation dynamique, quoi...


---> shining


C'é
tait clair, mais h
é
las
ç
a ne change pas le "owner" qui reste toujours la Form...
Ca ne change que le parent.


Mais j'aimerais bien un truc du mê
me genre pour changer le "owner"... ;)
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
18
Je viens d'avoir une idée! Je crée une deuxième fiche avec les compos que je veux sauvergarder, et je sauvegarde cette form2...
Je vais y arriver! lol
Messages postés
304
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
10 mars 2012

Bah désolé pour ma réponse ta question n'était pas très clair non plus :p

lorqu'on met SetSubComponent(True) , on ajoute csSubComponent dans ComponentStyle et inversement SetSubComponent(False) retire csSubComponent du ComponentStyle

SetSubComponent(True) indique à Delphi qu'il faut inclure tous les sous composants lors d'un enregistrement un flux ou fichier !!! celà nécessite de mettre en visibilité publiée tous les composants qu'on désire enregistrer
je te conseil de lire cette discution sur ce même sujet :
http://qc.borland.com/wc/qcmain.aspx?d=1732