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 :

Mettre une constante dans un array


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Points : 41
    Points
    41
    Par défaut Mettre une constante dans un array
    bonjour,

    dans mon programme, j'ai déclaré ceci :

    test1 : Array [0..1000] Of TMenuItem;

    maintenant, le soucis, c'est que j'ai beaucoup de variables "test" avec un array de 0 a 1000

    donc je voudrais savoir si il était possible de faire quelque chose dans ce genre :

    test1 : Array [0..nb_max_test] Of TMenuItem;


    j'ai mis une constante pour nb_max_test, mais j'ai une erreur

    pourriez-vous m'expliquer comment la corriger ?

    merci d'avance

  2. #2
    Membre éclairé
    Avatar de nostroyo
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 168
    Points : 680
    Points
    680
    Billets dans le blog
    16
    Par défaut
    En fait, il faut que tu déclares un tableau dynamique

    et dans ton Code tu fais un Setlength sur ton tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var
      LArray : Array of byte;
        LNbTestMax: Integer; // Le nombre variable max du tableau
    begin
      SetLength(LArray, LNbTestMax);
      ...

  3. #3
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    const
     nb_max_test=1000;
    var
     test1  : Array [0..nb_max_test] Of  TMenuItem;
    pourriez-vous m'expliquer comment la corriger ?
    avec le message d'erreur ça serait plus simple
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Points : 41
    Points
    41
    Par défaut
    ok merci je vais tester de suite ta solution teubies

    sinon le message d'erreur est :
    "constant expression expected"

  5. #5
    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
    le Code fourni par Paul Toth, devrait fonctionner ... attention il ne faut pas typer la constante !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    const
     nb_max_test: Integer = 1000; // Erreur
     
    const
     nb_max_test = 1000; // OK
    tu peux aussi faire une énumération si tu veux "nommer" tes éléments

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    type 
      TEnumTruc = (etTest1, etTest2, ..., etTest1000); // ouais c'est TRES long ...
     
    var
      test1  : Array [TEnumTruc] Of TMenuItem;
    en fait, 1000 TMenuItem, ce me surprend, autant de menu, tes utilisateurs doivent être perdu ...


    Enfin, si tu déclare une constante juste la borne des boucles for ou while, mieux vaut finalement parti sur l'utilisation de Low et High ...
    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

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Points : 41
    Points
    41
    Par défaut
    oula oui désolé, je n'avais pas vu que dans ce code la variable n'était pas typé !!
    en effet j'avais mis integer au début

    ok merci beaucoup, c'est exactement ce que je cherchais

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

Discussions similaires

  1. [MySQL] mettre une variable dans un array
    Par sinifer dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 17/02/2011, 20h43
  2. Réponses: 8
    Dernier message: 19/10/2009, 11h00
  3. Mettre une variable dans array
    Par Freedolphin dans le forum Langage
    Réponses: 9
    Dernier message: 22/07/2008, 13h43
  4. [c#] Mettre une constante dans un Boundfield
    Par oyigit dans le forum ASP.NET
    Réponses: 3
    Dernier message: 13/12/2006, 15h44

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