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 :

passer un Array Dynamic à une fonction


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2012
    Messages : 26
    Points : 20
    Points
    20
    Par défaut passer un Array Dynamic à une fonction
    Bonjour

    J ai pu constater qu il n etait pas possible de passer un array dynamic cree en local à une fonction.
    Pour y remedier, je copie son contenue dans une TstringList que je passe.

    Mais est il possible de contouner ce probleme ?

    Le creer en global est il plus interessant (en terme de performances par exemple) que de transiter par une tstringlist ?

    Merci pour vos conseils.

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Bonjour,

    J ai pu constater qu il n etait pas possible de passer un array dynamic cree en local à une fonction.
    ... Si, c'est possible il suffit de déclarer en global le type de l'array : 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
     
    Type ArrChaines   = Array Of String;
     
    Function BidouillerArray( var A : ArrChaines) : boolean; 
    begin      ....    
    end;
     
    procedure TForm1.MonBouton1Click(Sender : tObject);
    var       ARR : ArrChaines; i : cardinal;
    begin     SetLength(ARR,100);
              for i:=0 to High(ARR) do begin
                  ARR[i]:= Alimentation de l''array   
              end;
              if BidouillerArray(ARR) 
              then ShowMessage('Bidouillage réussi')
              else ShowMessage('Echec du bidouillage');
    end;
    A+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Ou utiliser le type prévu TStringDynArray (depuis D6 dans Types.pas)
    Et c'est même écrit dans l'aide Paramètres tableau ouvert
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2012
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    merci pour vos reponses

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

Discussions similaires

  1. [Tableaux] passer un array d'une page à une autre
    Par 18Marie dans le forum Langage
    Réponses: 5
    Dernier message: 25/06/2006, 22h42
  2. passer en paramettre d'une fonction une fonction
    Par RoM3Ro dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/06/2006, 15h54
  3. Perl - C : Passer des args a une fonction C
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 01/05/2006, 10h35
  4. [c#] passer un textbox dans une fonction
    Par damn dans le forum ASP.NET
    Réponses: 5
    Dernier message: 08/09/2005, 16h54
  5. Passer en paramètre d'une fonction (...)
    Par Captain_JS dans le forum C++
    Réponses: 5
    Dernier message: 03/11/2004, 07h18

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