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 :

Problème avec la création d'un objet array


Sujet :

Langage Delphi

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Août 2004
    Messages
    696
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 696
    Points : 225
    Points
    225
    Par défaut Problème avec la création d'un objet array
    bonjour

    j'ai un pb avec la creation d'un objet;

    voici le code, pouvez-vous me dire le problème:

    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
     
     
        TObjetB= CLass
            Private
            Published
            Public
                Constructor OpenObjetB;
                Destructor  CloseObjetB;
        End;
     
        TObjetA= CLass
            Private
            Published
            Public
                Constructor OpenObjetA;
                Destructor  CloseObjetA;
        End;
     
     
        TObjetC= CLass
            Private
                FObjetA : TObjetA;
                Function GetObjetB(NumObj: Integer): TObjetB;
                Procedure SetObjetB(NumObj: Integer; Value: TObjetB);
            Published
                Property LObjetA: TObjetA Read FObjetA Write FObjetA;
                Property LObjetB[NumObj:Integer]  : TObjetB Read GetObjetB Write SetObjetB;
            Public
                Constructor OpenObjetC;
                Destructor  CloseObjetC;
        End;

    message d'erreur a la complilation
    LObjetB ne peut pas etre de type array

    merci

  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    TU ne peux pas avoir de propriété de type array en published
    Il faut que tu passes cette propriété en public, ou bien utiliser les TCollection.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Août 2004
    Messages
    696
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 696
    Points : 225
    Points
    225
    Par défaut
    merci j'ai essayé et cela passe, par contre apresè test je me rend contre que mon codage n'est pas correcte

    en fait je souhaite avoir une liste de l'objetC dans l'objetA que me conseillerz-vous de faire.

    en effet lorsque je fais des tests je constate un problème avec l'objetC

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var
        OBJETA:TOBJETA;
    begin
        OBJETA:= TOBJETA.Create;
        OBJETA.OBJETC[1].?????
        OBJETA.OBJETB[1].?????
    merci

  4. #4
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    Pour une liste d'objet, il faut utiliser la TObjectList (contnrs). Dans ton ObjetA, tu déclares une TObjectList que tu crées dans son Create et que tu détruis dans son Destroy. Cela donne à peu près quelque chose comme ça:
    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
     
    type
      TObjetA = class
      private
        FList: TObjectList;
      public
        constructor Create;
        destructor Destroy; override;
      end;
     
    implementation
     
    constructor TObjetA.Create;
    var t: TObjetC
         i: integer;
    begin
      inherited;
      FList := TObjectList.Create(true);
      for i:= 1 to 4 do
      begin
        t := TObjetC.Cerate;
        FList.Add(C);
      end;
    end;
     
     
    destructor Destroy;
    begin
      Flist.Free;
      inherited;
    end;
    Ensuite, tu accèdes aux objets de la liste en castant de cette façon:
    Voila
    Pour plus d'infos, sur TObjectList

Discussions similaires

  1. [Pdf] [0.6] Problème avec la création de PDF
    Par sinleon dans le forum Autres composants
    Réponses: 12
    Dernier message: 02/03/2007, 11h47
  2. Réponses: 3
    Dernier message: 12/01/2006, 09h16
  3. probléme avec la création de table Mysql 5
    Par developpeur_mehdi dans le forum Outils
    Réponses: 3
    Dernier message: 19/10/2005, 19h08
  4. Problème avec la création d'un composant
    Par jeromelef dans le forum Composants VCL
    Réponses: 6
    Dernier message: 01/10/2005, 00h51
  5. Réponses: 2
    Dernier message: 29/03/2004, 18h29

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