Bonjour,

Une des formes de mon application (un descendant de TFrame) a, parmi ses composants, un autre descendants de TFrame, dont j'ai surchargé le constructeur. Donc j'ai un composant enfant et un composant, avec une entete du genre

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
class TMonEnfant : public TFrame {
public:
TMonEnfant(TComponent *owner, int param=0): TFrame(owner){...}
}
 
class TMonParent : public TFrame {
__published:
   	TMonEnfant *enfant;
}
Actuellement le composant enfant est créé automatiquement quand on crée son parent, et le constructeur de TMonEnfant est bien appelé, avec le second paramètre par défaut (à zéro dans l'exemple)

Maintenant, je voudrais changer ce paramètre dans le constructuer, en passant une liste d'initialisation au parent:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
TMonParent(TComponent *owner) : TFrame(owner),enfant(owner,1) {}
Et là j'ai deux questions :

1- ca me donne un message : ne peut convertir int en TMonEnfant*, donc apparemment, l'initialisation de la liste enfant(owner,1) ne reconnait pas le constructeur, pourquoi?
2- est ce bien "owner" qu'il faut passer? ou (TComponent *)this?

Merci d'avance,
Francois