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

Delphi Discussion :

Afficher Objet enfants d'un tabpage


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 76
    Par défaut Afficher Objet enfants d'un tabpage
    Bonjour, je suis toujours sur mon tableau de combobox...
    Maintenant un nouveau problème se pose à moi.
    Voila l'interface de mon application.
    En gros :


    Je dois tout sauvegarder dans un fichier xml pour pouvoir la recréer après.
    Donc j'enregistre hiérarchiquement tout dans mon fichier xml .
    Je suis partie de la logique je prend mon premier onglet (de Tnb_principal),et je récupère son nom (le nom de l'étage).Puis Chaque onglet a en enfant un autre TabbedNotebook qui figure dans mon tableau TNB_principal1: Array Of TabbedNotebook celui la me sert a représenter une pièce, je récupère donc le nom de la première pièce, et finalement je bloque , je voudrai récupérer le combobox enfant a cette pièce mais c'est la que tout ce complique. J’ai essayer de faire un lenomdemontabpage.findComponent mais il ne trouve rien je ne comprend pas ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Configuration_immeuble := XMLDoc.DocumentElement.AddChild('Configuration_immeuble');
    if assigned(TNB_principal) then
    begin
    For lecture_page:= 0 to TNB_principal.Pages.Count-1  do
    Begin
     TabPageetage := TTabPage(TNB_principal.Pages.Objects[lecture_page]);
       if assigned(TabPage) then
       begin
          etage := Configuration_immeuble.AddChild('etage') ;
          nometage := etage.AddChild('nom') ;
          nometage.Text :=  TabPageetage.Caption ;
     
          For num_onglet:= 0 to TNB_principal1[lecture_page].Pages.Count-1  do
            Begin
                TabPagepiece := TTabPage(TNB_principal1[lecture_page].Pages.Objects[num_onglet]);
                piece := etage.AddChild('piece') ;
                nompiece := piece.AddChild('nom') ;
                nompiece.Text :=  TabPagepiece.Caption ;
                  For NumTableau:= 0 to Length(CB_Mur)-1  do
                    Begin
                     Mur_CB_test := TComboBox(TabPagepiece.FindComponent(CB_Mur[NumTableau].Name));
                     if assigned(Mur_CB_test) then
                      begin
                         showmessage('ok');
                         break;
                      end
                     else
                      begin
                         showmessage('non');
                      end;
                    end;
     
     
            end;
        end;
    end;
    end;
    Le problème c'est qu'il faut absolument que je trouve le combobox enfant de la page. Donc je me demandé si il y avais une possibilité d'affiché la hiérarchie d'un composant (les objets qu'il contient) car si cela est possible il y a sûrement un moyen pour que je le sélectionne dans cette liste.

    Si cela n'est pas très clair n'aillait pas peur de m'en faire part.

    Merci d’avance

  2. #2
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Salut!

    Si tu débutes ton projet, regarde cette démo qui montre comment sauver puis lire des formulaires (PageControl et TabSheets). Absolument tout ce qui est contenu dans le PageControl sera sauvegardé dans le fichier, aussi bien les objets que leurs propriétés... Par contre, ce n'est pas un format XML mais DFM (ou CSV) mais il doit sûrement avoir un moyen simple pour l'adpater à ton projet.

    http://www.developpez.net/forums/sho...=216030&page=2

    Cela te convient-il comme exemple ?

    Sinon, pour obtenir les objets d'un composant, j'utilise tout simplement le tableau Components (voir avec touche F1). Tu listes tous les composants jusqu'à obtenir le type souhaité, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For x := 0 To ComponentCount - 1 Do
      If (Components[x] Is TComboBox) Then...
     
    // Ou bien avec le nom de l'objet :
      If (Components[x].Name = 'ComboBox1') Then...
    http://www.developpez.com/delphi/faq...ourscomponents

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 76
    Par défaut
    Tout d'abord merci de ta réponse
    Mon projet touche à sa fin malheureusement, j'ai juste un gros problème avec ça qui va me servir pour mon exportation Word et dans mon exportation de fichier XML.
    Merci pour cette astuce du tableau Component.
    Mais y a t'il un moyen d'avoir un tableau component mais que pour les objets d'un enfant d'un composant du genre :
    montab.component[]

    Je vais essayer de t’explique pourquoi.

    Le problème est que j'ai une fonctionne qui crée des onglets dans tnb_principal , à l'intérieur de chaque onglet il crée un autre TNB du nom de tnb_principal1[le chiffre du composant ] enfin à l'intérieur de ces onglets on trouve des composants qui sont déclaré dans des tableaux de composant et la il y a problème ...
    Exemple :
    L’utilisateur crée dans un premier temps un nouvel étage avec 2 salles, puis créer un autre étage avec 3 salle et dans l’étage précédent a oublier une salle et l’ajoute.
    Le composant de la première salle aura l'identification combo[0] dans le deuxième combo[1] puis le 3ème sera combo[5] car il a créé un autre étage et 3 autre salle , le problème quand je récupère les données c’est que je suis bloque pour récupérer mon composant je peux pas deviner le chiffre de chaque salle pour éviter se problème la seule solution que j’ai trouvé serait plutôt de faire une recherche dans la « descendance »* de l’onglet et trouver le combobox qui a un lien avec cet onglet .

    * Je ne connais pas le mot qui voudrait dire en programmation cela désolé.


    si tu comprends pas tout dit le moi car en me relisant je trouve peu etre cela un peu confut pour une personne qui connait pas l'application .

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 76
    Par défaut
    Enfin de compte grâce a toi j'ai peu être trouvé une solution .
    Je pence que le numéro attribué a l'objet est en fonction du moment ou il a été créé vue que je crée mon onglet juste avant mon combobox ca devrait être l'objet qui se trouve juste après, je vais voir d'un peu plus près.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 76
    Par défaut
    Mince les pages du TTabbedNotebook ne sont pas comprise comme des Components , faut que je me replonge sur la premiere méthode .

Discussions similaires

  1. Afficher objets avec propriétés imbriqués
    Par capitaine dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 18/07/2008, 10h06
  2. Réponses: 8
    Dernier message: 12/07/2008, 12h29
  3. afficher objet avec <bean:write>
    Par Philog dans le forum Struts 1
    Réponses: 9
    Dernier message: 25/02/2008, 17h55
  4. Réponses: 3
    Dernier message: 15/12/2006, 18h52
  5. [JTable] afficher objet perso
    Par daedric dans le forum Composants
    Réponses: 11
    Dernier message: 08/02/2006, 20h00

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