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

Langage Delphi Discussion :

Tableaux dynamiques multidimensionnels


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Points : 10
    Points
    10
    Par défaut Tableaux dynamiques multidimensionnels
    je suis plonté ben mon prb c un beug je sais pas ou le prb voila mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    type ObjetWithForm = array  of array  of array  of array  of array  of array  of array  of string;  
        OWF: ObjetWithForm;
        mylbtxtval:string ;
        mylbtxtname:string;
    begin
    SetLength(OWF, MainForm.ComponentCount); // tous les controls existants sur ma fiche apres je veux remplir mon tableau par exemple
    mylbtxtname :='val1';
    mylbtxtval:='val2';
    OWF[0,0,0,0,0,0,0]:=mylbtxtname + ',' + mylbtxtval + ',' + mylbtxtval +',' + mylbtxtval +',' + mylbtxtval + ','+ mylbtxtval + ',' + mylbtxtval ;
     
    end;
    je sais elle es ou l'erreur ?!!!! quelqu'un p m'aider et merci bcp
    _________________________________
    Modération : Merci de mettre les balises Code, NoisetteProd

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Ne t'affole pas l'ami, on va essayer de t'aider, mais avant ça, explique nous stp l'erreur qui te rencontre, et ce que tu veux faire au juste, car à premiere vue, je te conseillerais de revoir ta méthode :
    array of array of array of array of array of array of array
    Ca m'as pas l'air très propre ! Donc, plus d'expliquations STP que l'on puisse chercher une alternative.

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Points : 10
    Points
    10
    Par défaut justification
    ben moi mon but c lister tous les controles existants sur mon fiche "button,combo,..." et les remplir dans un tableau Tableau dynamiquesmultidimensionnel cad mon tableau a la fin va etre comme ca

    button1 1OO | 1OO | 1OO ... // nm controle caption left top ...
    text1 1OO | 1OO | 1OO .. // meme
    combo1 1OO | 1OO | 1OO .. // meme
    listox1 1OO | 1OO | 1OO... // meme
    ...

    ben j'arrive a obtenir les info des controls alors j'ai declacer mon tableau comme suitte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ObjetWithForm = array  of array  of array  of array  of array  of array  of array  of string; // 7 colone name capt left top rihgt ...
    begin
    SetLength(ObjetWithForm , MainForm.ControlCount); //nbre de ligne de tableau
    //par exemple je veux remplir la premiere linge par les info du premiere controle 
    ObjetWithForm [0,0,0,0,0,0,0]:='val1 , val2 ,val3 , ...7
    end;
    mais le mesage de bog nest pas claire ?!!!! a vous

  4. #4
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Après avoir lu ton explication, je n'arrive toujours pas à comprendre l'utilité d'un tableau ((multi)²)²dimensionnel !

    Est ce que pour chaque contrôle, tu codes les paramètres comme un String ?
    par exemple 'Caption, Width, Height' ? (remplaces les noms de propriétés par leurs valeurs)

  5. #5
    Membre confirmé
    Avatar de Manopower
    Inscrit en
    Décembre 2003
    Messages
    516
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 516
    Points : 453
    Points
    453
    Par défaut
    ouh lala je crois que tu te compliques !

    Question : Quelle sera l'utilité finale de ce tableau ? L'imprimer ? Ecrire dans un fichier ?

    Je te propose le code suivant et tu me dis si ça convient à ce que tu veux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Type UnObjet = record
      Nom : string;
      Caption : String;
      Left : Integer;
      Top : Integer;
    end;
     
    var
      Form1: TForm1;
      TableauDobjets : Array [1..1000] of UnObjet;
     
    implementation
    Si tu as besoin d'aide pour remplir ton tableau demande, mais cette solution est bcp plus propre qu'un array of array of....

    NB : Tu t'es gourré tu as créé un nouveau sujet au lieu de répondre Heureusement que les modérateurs veillent au grain

  6. #6
    Membre à l'essai
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    je trv sur ptit prog de creation des formulaire dynamique sans passer par des composant j'arrive a tous faire on se basant sur XML cad : lister tous les controles cree dynamiquement et les enregistrer sous forme de fiche xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?xml version="1.0" encoding="ISO-8859-1" ?>
     <form>
     <button1 caption='valider :' left='100' top='100' height='100' Width='100' type='3'></button1>
     <label1 caption='aaaa' left='150' top='100' height='100' Width='100' type='2'></label1>  
     <text1 caption='ana' left='200' top='100' height='100' Width='100' type='1'></text1>
     <combobox1 caption='bb' left='250' top='100' height='10' Width='50' type='4'></combobox1>
     <listbox1 caption='cc' left='300' top='100' height='50' Width='10' type='5'></listbox1>
     <checkbox1 caption='dd' left='350' top='100' height='50' Width='20' type='6'></checkbox1>
     <radiobox1 caption='ee' left='400' top='100' height='50' Width='30' type='7'></radiobox1>
     
     </form>
    apres si l'utilisateur veux ouvrir sans formulaire il n'a qu'a selectionnzr le fiche xml tous ca se passe bien sauf que l'enregistrement pour ca
    j'ai utiliser les array et je suis tjrs plonté j'arrive pas a comprendre ce que Sylvain Leray m'a repondu ..!!!!

  7. #7
    bjl
    bjl est déconnecté
    Membre averti Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Points : 338
    Points
    338
    Par défaut
    Bonjour, pour l'erreur proprement dite, je pese que çà vient du fait que tu n'as donné une taille qu'à la première dimension de ton tableau. les autres sont de taille 0 et tu essaies d'affecter une valeur à un 'champ' qui n'existe pas.

    sinon, je suis d'accord pour dire que ce n'est pas la solution adaptée à ton problème.

    Sylvain te propose un tableau de record.

  8. #8
    Membre confirmé
    Avatar de Manopower
    Inscrit en
    Décembre 2003
    Messages
    516
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 516
    Points : 453
    Points
    453
    Par défaut
    Je rééxplique alors

    Ici on va créé un nouveau type de variable (il existe les string, les integer...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Type UnObjet = record
      Nom : string;
      Caption : String;
      Left : Integer;
      Top : Integer;
    end;
    Nous on créé le type de variable UnObjet Qui est un Record (enregistrement en français)
    Pour chaque variable unObjet on aura donc 4 informations :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    UnObjet.Nom
    UnObjet.Caption
    UnObjet.Left
    UnObjet.Right
    Comme tu as besoin de stocker ces informations pour tous les composants de ta fiche, on fait donc un tableau de UnObjet, comme on aurait pu faire un tableau de String

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var
      Form1: TForm1;
      TableauDobjets : Array [1..1000] of UnObjet;
    Ensuite à la création de la fiche, on va boucler sur les composants de la fiche comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TForm1.FormCreate(Sender: TObject);
    var
    i : Integer;
    begin
      For i := 0 to Self.ControlCount-1 do
      begin
        TableauDobjets[i].nom := Self.controls[i].name;
        //Tous les controls n'ont pas de propriété Caption
        If assigned(TableauDobjets[i].caption) then
          TableauDobjets[i].caption := Self.controls[i].caption;
        TableauDobjets[i].Left := Self.controls[i].Left;
        TableauDobjets[i].Top := Self.controls[i].Top;
      end;
    end;
    Si tu veux tous les composants et ne pas te limiter aux controls visuels (si tu veux les TTables etc...) utilise Self.ComponentCount à la place de Self.ControlCount.

    Bon courage, j'espère avoir été plus clair.

Discussions similaires

  1. Tableaux dynamiques
    Par sebduth dans le forum Fortran
    Réponses: 5
    Dernier message: 05/07/2005, 15h36
  2. tableaux dynamiques
    Par Mynautor dans le forum C++
    Réponses: 23
    Dernier message: 12/02/2005, 02h45
  3. [D7] Tableaux dynamiques dans un record
    Par bobby-b dans le forum Langage
    Réponses: 2
    Dernier message: 30/06/2004, 23h23
  4. Article sur les tableaux dynamiques
    Par Eric Sigoillot dans le forum Langage
    Réponses: 2
    Dernier message: 16/04/2004, 22h00
  5. [Kylix] Tableaux dynamiques sour Kylix2
    Par Krän dans le forum EDI
    Réponses: 6
    Dernier message: 07/10/2003, 14h31

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