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 :

creation dynamique d'objet


Sujet :

C++Builder

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Par défaut creation dynamique d'objet
    bonjour tout le monde ,

    mon probleme est le suivant :
    je veux créer un objet dynamiquement ( ex: Edit , Caption ) dans une fenetre connaissant simplement son Handle , est possibe ??


    merci

    ( ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    HWND h;
    h=getwindow( NULL, "fenetre");
    TEdit *edit;
    edit->Parent=h;
    ...???)
    est que ce code est logique )

    merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2007
    Messages : 37
    Par défaut
    Oui c'est possible
    je l'ai fait une fois et je pense que le source et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TButton b=new TButton("name");//tu peut aussi pressiser son position et tout
    b->Parent=MaFrame;

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Par défaut
    slt
    j'ai essayé ça mais ça ne marche toujours pas

    merci

  4. #4
    Membre très actif
    Inscrit en
    Décembre 2004
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 188
    Par défaut
    Je ne pense pas que ce soit possible de la manière dont tu veux procéder car tu essayes de créer un composant de la VCL (TEdit) dans un composant qui ne fait pas partie de la VCL (la fenêtre).

    Quand tu fais (d'ailleurs )
    Tu assigne à Parent le handle de la fenêtre windows alors que le paramètre attendu est un pointeur sur un objet TWinControl (en particulier TForm).

    Donc si tu veux insérer une boîte de saisie (encapsulé dans un TEdit dans la VCL), soit tu le fais dans un composant de la VCL soit tu le fais directement à partir de l'API Windows.

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Citation Envoyé par dz_robotix
    slt
    j'ai essayé ça mais ça ne marche toujours pas

    merci
    Ca marche très bien, il faut juste penser à lui donner une position et surtout une taille sinon tu ne pourras pas le voir

  6. #6
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    Salut,
    il y a un exemple complet ici qui permet de créer un bouton et de gérer les évennements dynamiquement.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Par défaut
    merci bondy boy mais j'ai pas pu resoudre mon probleme qui est la creation d'un bouton dans une fenetre connaissant son handle

  8. #8
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    Salut, je pense que ca devrait marcher comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        MonBouton = new TButton(this);
        MonBouton->Left = 20;
        MonBouton->Top = 20;
        MonBouton->Caption = "Bouton";
        MonBouton->Parent = HandleFenetre;

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Par défaut
    bonjour,

    j'ai essayé le code suivant (apres casting):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        MonBouton = new TButton(this);
        MonBouton->Left = 20;
        MonBouton->Top = 20;
        MonBouton->Caption = "Bouton";
        MonBouton->Parent = (TwinControl*)HandleFenetre;
    sa compile mais lors de l'execution j'ai un message d'erreur (erreur de composant rtl ..).
    je ne sais pas si le casting est bon ou non

  10. #10
    Membre extrêmement actif
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 221
    Par défaut
    Je vais aussi participer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      TButton * MonBouton
      MonBouton = new TButton(this);
      MonBouton->Left = 20;
      MonBouton->Top = 20;
      MonBouton->Caption = "Bouton";
      MonBouton->Parent->Handle = HandleFenetre;//obtenu par GetWindowDC par exemple
    N'oublie pas le *.
    Parent est de type TWinControl donc on ne peut pas lui affecter directement un handle.

    si ça ne marche pas encore, utilisez SetParent()
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Par défaut
    toujours probleme de casting ( pas possible d'acceder au handle du parent:
    parent->Handle : fausse expression )

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 50
    Par défaut
    Ben moi je me demandais pour allouer un Check box si sa marchais aussi avec parent car voici ce que j'ai ecrit mais rien ne s'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
             TCheckBox *CB_capteur;
            CB_capteur=new TCheckBox(GB_capteurs);
            CB_capteur->Caption="Levier de vitesse";
            CB_capteur->Checked=false;
            CB_capteur->Font->Style=TFontStyles()<<fsBold;
            CB_capteur->Top=45;
            CB_capteur->Left=20;
            CB_capteur->Visible=true;
            CB_capteur->ParentShowHint=true;
    aidez moi s'il vous plait merci

  13. #13
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Citation Envoyé par nizzart
    Ben moi je me demandais pour allouer un Check box si sa marchais aussi avec parent car voici ce que j'ai ecrit mais rien ne s'affiche
    TCheckBox *CB_capteur;
    CB_capteur=new TCheckBox(GB_capteurs);
    CB_capteur->Caption="Levier de vitesse";
    CB_capteur->Checked=false;
    CB_capteur->Font->Style=TFontStyles()<<fsBold;
    CB_capteur->Top=45;
    CB_capteur->Left=20;
    CB_capteur->Visible=true;
    CB_capteur->ParentShowHint=true;

    aidez moi s'il vous plait merci
    Bonsoir,
    Effectivement, apparemment dans ton cas sans préciser le Parent de l'objet crée dynamiquement, c'est peine perdue ... (mais dis moi, puisque que tu le pressentais, pourquoi ne pas l'avoir tester directement ?)
    @ +

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 50
    Par défaut
    Escusez moi mais en faite j'ai reussi a trouver dans la liste le parent.
    Et maintenant sa marche impec.
    Merci quand meme a vous

  15. #15
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Bonsoir,

    A priori, cela fonctionne avec les 'tres classiques' API :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    HWND h;
    h = FindWindow( NULL, "delphiForm");
    CreateWindow("BUTTON","", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 300, 290, 100, 100, h, h, NULL, NULL);
    //ou 'delphiForm' est le nom d'une fenêtre visée pour l'ajout du gros, gros bouton 
    // dans mon cas ...
    Reste a gérer les évènements dans cet objets nouvellement crée, en je dirais qu'il faut suivre cette voie et profiter des très bons tutos de ce site, non ?

    En espérant t'aider,
    @ +

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Par défaut
    ça marche tres bien
    merci à vous tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. creation dynamique d'objets avec souris
    Par guitariste dans le forum JavaFX
    Réponses: 4
    Dernier message: 04/04/2009, 17h11
  2. Creation dynamique d'objet
    Par funkadelic dans le forum Général Java
    Réponses: 10
    Dernier message: 21/02/2007, 18h01
  3. [3.0][XAML] Création dynamique d'objets graphiques
    Par Yaugzebul dans le forum Windows Presentation Foundation
    Réponses: 10
    Dernier message: 20/11/2006, 15h37
  4. Réponses: 8
    Dernier message: 04/09/2003, 16h07
  5. Creation dynamique d'un objet
    Par Tom_sawyer13 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 06/08/2003, 18h31

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