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 :

Petite erreur de définition de classe


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2003
    Messages : 64
    Points : 54
    Points
    54
    Par défaut Petite erreur de définition de classe
    Bonjour à tous

    Je suis surement pas assez réveillé ce matin, mais j'arrive pas à voir ce qui cloche là :

    Sous D6
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    type
     TPersonne = Class
      private
      	function CalculAge(aDate: TDatetime) : integer;
    	public
      	Nom : string;
        Prenom: string;
        DateDeNaissance: TDatetime;
        property Age: integer read CalculAge;
      end;
    à la compil j'ai l'erreur suivante sur la ligne de définition de la propriété: Types Incompatible

    Je vais aller prendre un café et espérer soit avoir les idées plus claire en revenant soit que quelqu'un donne son avis ici !

    Merci d'avance.

  2. #2
    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 : 55
    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 457
    Points
    28 457
    Par défaut
    ben c'est normal, ta méthode attend un paramètre que ta propriété n'a pas

    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
     
    type
     TPersonne = Class
      private
        FNom : string;
        FPrenom: string;
        FDateDeNaissance: TDatetime;
        function CalculAge(aDate: TDatetime) : Integer;
        function GetAge: Integer; // Result := CalculAge(FDateDeNaissance);
      public
        property Nom: string read FNom write FNom;
        property Prenom: string read FPrenom write FPrenom;
        property DateDeNaissace: TDateTime read FDateDeNaissance write FDateDeNaissance;
        property Age: Integer read GetAge;
        property AgeFromDate[aDate: TDateTime]: integer read CalculAge;
      end;

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2003
    Messages : 64
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    ben c'est normal, ta méthode attend un paramètre que ta propriété n'a pas
    je pensais bien que j'avais merdouillé :
    je me copierai 100 fois :
    Pas de paramètre autorisé pour les fonctions utilisées comme spécificateur read

    Merci Paul

    Emmanuel.

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Petite précision :

    "Pas de paramètre autorisé pour les fonctions utilisées comme spécificateur read sauf en cas de propriété tableau ou indexée."

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2003
    Messages : 64
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par Aka Guymelef Voir le message
    Petite précision :

    "Pas de paramètre autorisé pour les fonctions utilisées comme spécificateur read sauf en cas de propriété tableau ou indexée."
    Je n'avais pas réalisé que l'index d'une propriété pouvait être utilisée comme paramètre à son accesseur.
    Au final mon code précédent pouvait être correct en modifiant la propriété comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    type
    TPersonne1 = Class
      private
        function CalculAge(aDate: TDatetime) : integer;
      public
        Nom : string;
        Prenom: string;
        DateDeNaissance: TDatetime;
        property Age[aDate: TDateTime]: integer read CalculAge;
    end;
    Merci à vous.
    Emmanuel.

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/09/2009, 19h29
  2. Réponses: 5
    Dernier message: 27/07/2006, 08h05
  3. Petite erreur sur formulaire
    Par shub dans le forum Access
    Réponses: 2
    Dernier message: 26/04/2006, 11h55
  4. petite erreur ENGINE=InnoDB
    Par speedylol dans le forum Installation
    Réponses: 1
    Dernier message: 24/03/2006, 17h22
  5. Erreur composant TImage : "la classe n'existe pas"
    Par jeroe dans le forum Composants VCL
    Réponses: 2
    Dernier message: 05/03/2006, 16h46

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