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 :

Enlever un choix dans les types


Sujet :

Delphi

  1. #1
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Par défaut Enlever un choix dans les types
    salut tout le monde voils la probleme que j'ai

    j'ai le type suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      TType3etats=(TEtatOuvert,TEtatFerme,TEtatPasAction);
    et je voudrais faire un type qui "hérite" du premier sans qu 'il y ai l'état TEtatPasAction.

    Comment faire??

  2. #2
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    Question bête, qu'est-ce qui t'empêche de créer un 2° type ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      TType2etats=(TEtatOuvert,TEtatFerme);
    @+ Claudius

  3. #3
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Par défaut
    Je ne peux pas le faire uniquement parceque le compilateur me dit que l'identificateur est redéclaré.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    TType3etats=(TEtatOuvert,TEtatFerme,TEtatPasAction);
    TType2etats=(TEtatOuvert,TEtatFerme);
    Message du complio:

    Identificateur redéclaré : 'TEtatOuvert'
    Identificateur redéclaré : 'TEtatFerme'
    Type incompatibles : 'TType3etats' et 'TType2etats'

  4. #4
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 142
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 142
    Par défaut
    Salut !

    Et comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    type
      TType2etats=(TEtatOuvert,TEtatFerme);
      TType3etats=(Type2Etats,TEtatPasAction);
    Pas d'erreur de compil.
    Mes 2 cts,
    --
    jp

  5. #5
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Citation Envoyé par Jipété
    Pas d'erreur de compil.
    Moi j'ai une erreur de compilation !!! Ce qui me parait logique d'ailleurs.

    @+

  6. #6
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 142
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 142
    Par défaut
    Moi j'ai une erreur de compilation !!!
    Comprenne qui peut... (D7 perso)
    Ceci étant, j'étais circonspect quant à ma réponse : me demande s'il n'y aurait pas déjà un problème de déclaration de ses types primaires, TEtatOuvert, etc.
    À voir...
    --
    jp

  7. #7
    Expert confirmé

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Par défaut
    Si les états de T2Etats ont vraiment le même sens que leurs correspondants dans T3Etats, tu peux faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    type
      T3Etats = (EtatOff, EtatOn, EtatAucun);
      T2Etats = EtatOff..EtatOn;
    J'ai pas vérifié au compilo mais je pense bien que ça devrait fonctionner.

    Sinon, s'ils n'ont pas la même significations : change de nom C'est plus logique, plus lisible, et... Ca fonctionne
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  8. #8
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Citation Envoyé par sjrd
    J'ai pas vérifié au compilo mais je pense bien que ça devrait fonctionner.
    Ca compile sans problème, et les limites d'étendu sont respectées. Gagné !

    @+ Claudius

  9. #9
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 142
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 142
    Par défaut
    'Soir !

    Oui, ça compile aussi, mais j'aimerais bien qu'on m'explique (je ne veux pas mourir idiot, ) : quand on se déclare un type perso, il va contenir des trucs qui doivent bien être d'un certain type, déjà connu, non ?
    Et d'où est-ce qu'il connait EtatOff, EtatOn, et EtatAucun, le compilo ?

    Merdum, un truc m'échappe, merci d'éclairer ma lanterne,
    --
    jp

  10. #10
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Par défaut
    on aurrait pu ecrire aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      T3Etats = set of (EtatOff, EtatOn, EtatAucun);
      T2Etats = EtatOff..EtatOn;
    F1 sur le mot sets pour des explications...

    J'ai l'impression que le compilateur remplace les mots qu'on utilise par des
    chiffres...(0 à 255) ca devient alors pour les humains que nous sommes
    plus sympatique de travailler avec EtatOff, EtatOn, et EtatAucun qu'avec 0,1 et 2...
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

  11. #11
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 142
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 142
    Par défaut
    Bon sang mais c'était bien sûr !
    Merci, Éric.
    --
    jp

  12. #12
    Expert confirmé

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Par défaut
    Citation Envoyé par Eric Boisvert
    on aurrait pu ecrire aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      T3Etats = set of (EtatOff, EtatOn, EtatAucun);
      T2Etats = EtatOff..EtatOn;
    Non, ça n'est pas la même chose ! Ici tu déclares T3Etats comme un ensemble. Alors qu'on veut une simple énumération
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  13. #13
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Par défaut
    Citation Envoyé par sjrd
    Non, ça n'est pas la même chose ! Ici tu déclares T3Etats comme un ensemble. Alors qu'on veut une simple énumération
    +1 sjrd
    il y a effectivement une bonne différence entre les deux!
    Je suis aller un peu vite pour celle là! Désolé!

    À titre d'exemple, avec cette declaration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    T3Etats = set of (EtatOff, EtatOn, EtatAucun);
    une variable défini comme T3Etat pourait être à la fois EtatOff et EtatOn
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var
     Test:T3Etats;
    begin
     Test:=[EtatOff, EtatOn];
    et ce qui n'est sûrment pas l'éffet voulu ici.
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

  14. #14
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    pour comprendre le code de sjrd :

    Un exemple faux, mais qui aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    type 
                byte=(0,1,2,3,4,5,6,7,8,...,252,253,254,255); //tous les chiffres d'un byte sont déclarés en même temps que le type lui même
                pourcent=0..100; //réutilisation de ce qui à déjà été déclaré

    Autre exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    type 
                semaine=(Lundi,Mardi,Mercredi,Jeudi,Vendredi,Samedi, Dimanche); //les chiffres sont déclarés en même temps que le type byte
                WeekEnd=Samedi..Dimanche; //réutilisation de ce qui à déjà été déclaré

  15. #15
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Par défaut
    Okc 'est parfait je vous remercie a tous.

  16. #16
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut

    tu as d'autre possibilite
    par exemple tu peut utiliser ton enumeration

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TType3etats=(TEtatOuvert,TEtatFerme,TEtatPasAction);
    et le transformer en ensemble
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TTypEtats = set of TType3etats
    une fois tes ensemble former tu peut y retirer ou y incluer des elements preexistant

    exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Exclude(TTypEtats,TEtatPasAction);
    ... 
     include(TTypEtats,TEtatPasAction);

    @+ Phil

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/12/2008, 12h19
  2. [XPATH] choix dans les xpath, parser et autres
    Par greg08 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 09/11/2008, 20h19
  3. Choix dans les codes algorithmiques
    Par O( N ) dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 08/09/2006, 12h51
  4. Réponses: 1
    Dernier message: 07/11/2005, 09h39
  5. Choix dans les jointures externes
    Par WebPac dans le forum SQL
    Réponses: 2
    Dernier message: 21/01/2005, 12h34

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