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

Composants VCL Delphi Discussion :

Constructor - Passer plusieurs paramètres


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 187
    Par défaut Constructor - Passer plusieurs paramètres
    Hi,

    Est-il possible de passer en paramètre à la procédure Create du Constructor plusieurs paramètres ? Ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Type
      MyPanel = class(TPanel)
      ...
      Public
        Constructor Create(Owner: TComponent; UneVariable: Integer); Override;
      ...
    Dans l'état, ci-dessus, Delphi me signale que "La déclaration de 'Create' diffère de la création précédente"

    Comment faire alors ?

    Merci .

    JJE

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    591
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 591
    Par défaut
    Bonjour,

    Il convient de supprimer "override" de la déclaration. Le code doit s'établir ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Type
      MyPanel = class(TPanel)
      ...
      Public
        Constructor Create(Owner: TComponent; UneVariable: Integer);
      ...
    L'aide Delphi indique comment utiliser override qui ne doit être employé que pour surcharger un méthode.

    Pour surcharger une méthode, redéclarez-la avec la directive override. Une déclaration override doit correspondre à la déclaration de l'ancêtre dans l'ordre et le type des paramètres, ainsi que dans le type éventuel du résultat.
    Bon courage

  3. #3
    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
    Citation Envoyé par seabs Voir le message
    Il convient de supprimer "override" de la déclaration.
    Effectivement, avec l'override tu auras une erreur à la compilation te signifiant que la déclaration diffère de la précédente (soit de la classe ancêtre).

    A la place d'override tu peux utiliser reintroduce précisant au compilateur que tu vas redéfinir la méthode.

    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
    interface
     
    type
      TMyPanel = class(TPanel)
      public
        constructor Create(AOwner: TComponent; AParam: Integer); reintroduce;
      end;
     
    implementation
     
    constructor TMyPanel.Create(AOwner: TComponent; AParam: Integer);
    begin
      inherited Create(AOwner);
      // Et la suite ...
    end;
    @+ Claudius

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 187
    Par défaut
    Yesss !

    Merci pour vos réponses.

    Je préfère la solution de Cl@udius qui me permet de conserver l'instruction inherited Create(AOwner); dans le constructeur.



    JJE

Discussions similaires

  1. Passer plusieurs paramètres à une commande
    Par Xxbz3 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 30/12/2010, 11h19
  2. Réponses: 2
    Dernier message: 22/10/2009, 09h22
  3. Réponses: 5
    Dernier message: 03/07/2007, 10h31
  4. Passer plusieurs paramètres dans un callback (débutant!)
    Par pilouface dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 07/02/2007, 20h42
  5. Réponses: 2
    Dernier message: 12/09/2005, 15h33

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