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 :

Fonction de type tableau


Sujet :

Langage Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Fonction de type tableau
    Bonjour

    Est-il possible de déclarer une fonction retournant un tableau. ?

    Je n'ai pas réussi.

    Merci

    Charles

  2. #2
    FWS
    FWS est déconnecté
    Inactif
    Inscrit en
    Juillet 2002
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 16
    Points : 18
    Points
    18
    Par défaut
    Pourquoi des fonctions dans un tableau ? Pourquoi ne pas utiliser des fonctions de type globaux ?

    Cordialement.

  3. #3
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut
    Ceci passe à la compilation, maintenant, je n'ai pas essayé de remplir les fonction et de les tester...

    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
    type
     
      MonTableau = array [1..5] of integer;     //TABLEAU NORMAL
      MonTableauDyn = array of byte;            //TABLEAU DYNAMIQUE
     
      TForm1 = class(TForm)
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    function tab(i:byte):MonTableau;
    begin
      {INSTRUCTIONS}                                     //PREMIERE FONCTION
    end;                                                 //AVEC LE TABLEAU NORMAL
     
    function tab_dyn(i:byte):MonTableauDyn;
    begin
      {INSTRUCTIONS}                                    //DEUXIEME FONCTION
    end;                                                //AVEC LE TABLEAU DYNAMIQUE

  4. #4
    Membre habitué

    Inscrit en
    Avril 2002
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 32
    Points : 150
    Points
    150
    Par défaut
    En effet, contrairement à Turbo Pascal (où on ne peut renvoyer que des pointeurs sur des tableaux), Delphi permet aux fonctions de retourner des tableaux (array).

    A+

    PS : y'a pas d'accent circonflexe à "mourut" !

  5. #5
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut
    PS : y'a pas d'accent circonflexe à "mourut" !
    Merci merci Benoît M, je maitraîse plus la "grammaire" du Pascal Objet que celle du français...!

  6. #6
    Invité
    Invité(e)
    Par défaut
    Salut,

    Le plus simple dans ton cas est d'utiliser les tableaux dynamiques ...

    Exemple :

    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
    38
    39
    40
    41
    42
    43
    44
    Type
         TMonTableau = Array Of String ;
     
    Function MaFonction : TMonTableau ;
     
    const
         Taille = 5 ;
     
    var
         Index : Integer ;
     
    begin
         SetLength(Result,Taille) ;
     
         For Index := Low(Result) To High(Result) Do
             begin
                  Result[Index] := Format('Ligne %d',[Index]) ;
             end;
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
     
    var
         MonTableau : TMonTableau ;
     
    var
         Index      : Integer ;
         Texte      : String  ;
     
    begin
         MonTableau := MaFonction ;
         Text       := ''         ;
     
         if (Length(MonTableau) > 0)
            then
            begin
                 For Index := Low(MonTableau) To High(MonTableau) Do
                     begin
                          Texte := Texte + MonTableau[Index] + #13 ;
                     end;
            end;
     
         ShowMessage(Trim(Texte)) ;
    end;
    A+

    Didier

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 14/01/2008, 12h13
  2. [LG]Resultat de fonction de type Record ?
    Par Mike888 dans le forum Langage
    Réponses: 10
    Dernier message: 24/01/2004, 22h48
  3. Réponses: 6
    Dernier message: 12/10/2003, 14h57
  4. [VB6] [Syntaxe] Fonction renvoyant un tableau d'objets
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/10/2002, 15h33
  5. fonction renvoyant un tableau en argument
    Par Jones dans le forum Langage
    Réponses: 6
    Dernier message: 30/09/2002, 18h20

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