IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

[Débutant] Constructeur par recopie pour TComponent [Non suivi]


Sujet :

C++Builder

Vue hybride

Runlevel [Débutant] Constructeur par... 05/05/2006, 20h38
Interruption13h Salut ! Tu pourrai mettre... 05/05/2006, 21h00
Runlevel Salut Interruption13h ! ... 05/05/2006, 21h07
pottiez D'après ce que j'ai pus voir... 05/05/2006, 23h17
neilbgr Avec RTTI ça doit être... 05/05/2006, 23h27
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 49
    Par défaut [Débutant] Constructeur par recopie pour TComponent
    Salut tout le monde.
    J'aurais pas du mettre [Débutant] mais plutôt [Débile], je le sens d'avance.
    Donc, au risque de passer pour un demeuré, je me lance quand même ^^

    Question toute bête: On ne peut pas instancier un nouveau composant avec un constructeur par recopie ?

    Dans le cas pratique, j'ai un TRichEdit placé sur une form, et j'aimerais en créer X autres dynamiquement qui reprennent toutes les propriétés du premier (Font, taille, etc..) Et oui, parce que d'une, je suis faignant, et de deux pour la maintenance du code, c'est mieux aussi, accessoirement.

    Par avance désolé si c'est dans la Faq, j'ai pas trouvé.
    Amicalement.

    Run.

    Ps: Ha oui, j'ai oublié de dire, j'ai pas envie de me frapper une classe dérivée si c'est possible autrement ;o

  2. #2
    Membre émérite
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Par défaut
    Salut !

    Tu pourrai mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
     
    TRichEdit* NouveauRichEdit=new TRichEdit(this);
    NouveauRichEdit->Parent=Form1;
    NouveauRichEdit->Top=X;
    NouveauRichEdit->Left=Y;
    NouveauRichEdit->Text=RichEdit1->Text;
    NouveauRichEdit->Font=RichEdit1->Font;
    NouveauRichEdit->Width=RichEdit1->Width;
    NouveauRichEdit->Height=RichEdit1->Height;
     
    //etc...
    ++

  3. #3
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 49
    Par défaut
    Salut Interruption13h !

    Ouais, c'est clair, mais c'est justement ce que je voudrais éviter ;o
    C'est que j'ai un poil dans la main, et peur aussi de zapper des propriétés :]
    Mais bon, si y a pas d'autre moyen, on va faire comme ça.

    J'attends la fin de la soirée si jamais quelqu'un sait si c'est possible ou non, histoire d'être fixé une fois pour toute.

    Merci pour ta réponse en tout cas.

  4. #4
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    D'après ce que j'ai pus voir dans l'aide, cela n'est absolument pas possible, il y aurai qu'un seul constructeur avec pour paramètre le composant parent de celui que l'on déclare donc impossible de recopier les propriétées d'un composant semblable, il prendrait ce composant semblable pour sont parent, ce qui n'est pas du tout le but recherché, je sais pas si tu as tout suivit mais le raisonnement est bon , enfin d'après moi en tout cas .

  5. #5
    Membre émérite
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Par défaut
    Avec RTTI ça doit être possible :
    Le principe :
    • On Créé un Flux genre TMemoryStream
    • Avec le Flux on fait WriteComponent(LeRichEdit);
    • On remet la position du Flux à 0
    • On recupère une nouvelle instance avec la méthode ReadComponent() du Flux ( NouveauRichEdit = ReadComponent(NouvelleInstanceDeRichEditALaVolée) )

    Je ne donne pas de code, car je ne parle que Delphi, et je risque de me faire

  6. #6
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Citation Envoyé par neilbgr
    Je ne donne pas de code, car je ne parle que Delphi, et je risque de me faire
    Ce serais l'occasion de t'y mettre


Discussions similaires

  1. Réponses: 8
    Dernier message: 27/10/2006, 14h36
  2. Réponses: 11
    Dernier message: 25/08/2006, 16h00
  3. Constructeur par recopie
    Par Bebert71 dans le forum C++
    Réponses: 13
    Dernier message: 18/05/2006, 15h08
  4. Constructeur par recopie
    Par KernelControl dans le forum C++
    Réponses: 2
    Dernier message: 29/12/2005, 12h24
  5. Constructeur par recopie
    Par sdebrois dans le forum Composants VCL
    Réponses: 13
    Dernier message: 21/10/2004, 14h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo