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 :

Property ne fonctionne pas


Sujet :

Langage Delphi

  1. #1
    Membre éprouvé
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Points : 963
    Points
    963
    Par défaut Property ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
           function Get_Field(Idx:Integer):Integer;
           procedure Set_Field(Idx:Integer;Value:Integer);
       public
           property Field[Idx:Integer=-1]:Integer read Get_Field write Set_Field;
    La question est simple pourquoi ce code ne marche pas j'ai essayé avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
           function Get_Field(Idx:Integer=-1):Integer;
           procedure Set_Field(Idx:Integer=-1;Value:Integer=-1);
       public
           property Field[Idx:Integer=-1]:Integer read Get_Field write Set_Field;
    mais c'est la meme chose l'erreur pointe sur le mot write
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Erreur] : Types incompatibles
    Merci

  2. #2
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 289
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 289
    Points : 1 940
    Points
    1 940
    Par défaut
    L'erreur est au niveau du -1, tu ne peux pas avoir de valeur par défaut apparemment.
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2022

  3. #3
    Expert éminent sénior
    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 : 61
    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
    Points : 10 008
    Points
    10 008
    Par défaut
    +1

    On ne peut pas préciser de valeur par défaut pour une propriété indicée.

    @+

  4. #4
    Membre éprouvé
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Points : 963
    Points
    963
    Par défaut
    On ne peut pas préciser de valeur par défaut pour une propriété indicée.
    Pour la lecture c'est possible

  5. #5
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 289
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 289
    Points : 1 940
    Points
    1 940
    Par défaut
    Pas pour Delphi 7 (oui je sais ça commence à se faire vieillissant ).
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2022

  6. #6
    Membre éprouvé
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Points : 963
    Points
    963
    Par défaut
    Merci je vais essayer autre chose

  7. #7
    Membre éprouvé
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Points : 963
    Points
    963
    Par défaut
    j'ai redefini separement chaque champ comme un nouveau property
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        function Get_Field(Field: TBibFields):TField;
        function Get_Integer(Index: TBibFields):Integer;
        function Get_String(Index: TBibFields): string;
        ...
     public
        property ID: Integer index BibID read Get_Integer write Set_Integer;
        property Title: string index BibTitle read Get_String write Set_String;
        property Creation: TDateTime index BibCreation read Get_DateTime;
        ...
    Les noms des champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     TBibFields=(BibID,BibParent,BibNodeType,BibProperties,BibGroup,BibOrder,//IntFields
                 BibTitle,BibBuf,  //StrFields
                 BibParentList,BibChildsList,//TBibList
                 BibCreation,BibEdit);    //DateTimeFields
    const
      FieldsName:array[TBibFields]of string=(
                 'BibID','BibParent','BibNodeType','BibProperties','BibGroup','BibOrder',
                 'BibTitle','BibBuf',
                 'BibParentList','BibChildsList',
                 'BibCreation','BibEdit');
    implementation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function TBibRow.Get_Field(Field: TBibFields):TField;
    begin
        result:=FExplorer.DataSet.FieldByName(FieldsName[Field]);
    end;
     
    function TBibRow.Get_Integer(Index:TBibFields): Integer;
    begin
        result:=Get_Field(Index).AsInteger;
    end;
    est ce que je vais avoir des surprises avec ce code FieldsName[Field]
    Merci

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/06/2012, 18h05
  2. Réponses: 6
    Dernier message: 27/01/2004, 11h14
  3. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04
  4. Un Hint sur un PopupMenu ne fonctionne pas !!??
    Par momox dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/05/2003, 16h48
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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