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 :

Tableau structuré constant


Sujet :

Delphi

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Par défaut Tableau structuré constant
    Bonjour a tous,
    je cherche a faire un tableau structuré qui contient toujours les mêmes valeures,j'ai fouiné sur le FAQ mais etant donné que je suis un petit debutant en delphi je n'arrive pas a comprendre comment je pourrais réaliser ce fameux tableau

    je m'explique,je declare ma structure comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    type
      TTabNomMois = Record
        NumMois : Integer;
        LibelleMois : string;
    end;
    puis je declare un tableau comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    const
        TabDate : TTabNomMois
    et la je ne sais pas comment procèder pour remplir mon tableau comme ceci par exemple :

    1ère case
    1
    janvier

    2ème case
    2
    février

    ect...

    donc voila j'espère que c'est possible
    merci a tous ceux qui prendrons le temps d'etudier ma question!

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 937
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 937
    Par défaut
    Pour un tableau de constantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    const
      TabDate : array[1..12] of TTabNomMois = (
        (NumMois:1; LibelleMois:'Janvier'),
        (NumMois:2; LibelleMois:'Février')
        //etc. 12x
      );

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 241
    Par défaut
    Bonjour; shibron pour quoi tu veux utiliser un enregistrement alors que vous pouvez utiliser un tableau "array"?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Par défaut
    Andnotor merci pour ta solution ça fonctionne au poil!

    sam83 j'utilise cette ma nière de faire car je suis débutant je ne connais pas les autres manière de faire et je trouve que cela colle plus ou moins avec mon language de base qui est le C#

    cependant si tu as une solution plus simple a me proposé je suis tout ouïe,j'ai soif d'apprendre

    encore merci et bonne journée

  5. #5
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 089
    Par défaut
    Ben, surtout voir SysConst.pas et SLongMonthNameJan, SLongMonthNameFeb, ... ou encore la fonction qui le fait tout seul FormatDateTime avec la langue du système normalement !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShowMessage(FormatDateTime('mmmm', EncodeDate(1900, AMonth, 01)));
    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 confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Par défaut
    ShaiLeTroll je ne savait absolument pas que ces méthodes existaient !
    merci de me les avoir montrées, je pense que je les utiliseraient pour obtimiser le code une fois que tout marchera comme sur des roulettes

    merci!

  7. #7
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 937
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 937
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    ... ou encore la fonction qui le fait tout seul FormatDateTime avec la langue du système normalement !
    Malheureusement non, je viens de faire l'essai sur un système en anglais

  8. #8
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 089
    Par défaut
    J'avais un doute aussi, cela utilise LongMonthNames (finalement le tableau comme l'avait proposé sam83 existe déjà), il y a un moyen de le mettre à jour par rapport au système d'exploitation en utilisant les variantes pour l'utilisation en thread !

    est-ce que ceci passe mieux en OS anglais ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var
       FormatSettings: TFormatSettings;
    begin
        GetLocaleFormatSettings(GetThreadLocale(), FormatSettings);
        ShowMessage(FormatDateTime('mmmm', EncodeDate(1900, AMonth, 01), FormatSettings));   
    end;
    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

  9. #9
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 937
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 937
    Par défaut
    Non, toujours français.
    Mais je pense que tu t'approches

    Si je change le format au niveau de l'OS, la langue est adaptée.

    Edit:
    En fait je dis une connerie, mon OS anglais avait un format date/heure français (=> texte en français)
    Donc, ça fonctionne

  10. #10
    Membre chevronné Avatar de archonte
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 343
    Par défaut
    Petite contribution moins technique que celles de ShailLeTroll ou d'Andnotor :
    Citation Envoyé par Andnotor Voir le message
    Pour un tableau de constantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    const
      TabDate : array[1..12] of TTabNomMois = (
        (NumMois:1; LibelleMois:'Janvier'),
        (NumMois:2; LibelleMois:'Février')
        //etc. 12x
      );

    Array[1..12] et NumMois variant de 1 à 12 semblent équivalent. Si l'on veut pour des raisons diverses afficher d'autres info que celles fournie par LongMonthNames, on peut simplement déclarer un array[1..12] of string. Et comme ça, on affiche un mot / une phrase différente pour chaque mois .. enfin, ça offre plein d'autres possibilités, dont vraissemblablement le choix de la langue ... (mais qu'il faudra coder). Au passage on évite la déclaration d'un record.

    Et pourquoi pas un tableau 2D avec une dimension langue / une dimension traduction .....

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

Discussions similaires

  1. Tableau de constantes dans une classe statique
    Par Nico_stras dans le forum C#
    Réponses: 4
    Dernier message: 05/03/2007, 20h18
  2. [Tableaux] nom en tableau ou constante
    Par Yoshio dans le forum Langage
    Réponses: 4
    Dernier message: 13/09/2006, 10h42
  3. [Tableaux] tableau de constantes
    Par ctrl+z dans le forum Langage
    Réponses: 2
    Dernier message: 10/08/2006, 11h49
  4. [VBA-E] un tableau de constantes
    Par tinmarbusir dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/07/2006, 15h24
  5. Réponses: 3
    Dernier message: 20/11/2005, 20h04

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