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 :

function valeur par defaut sur un parametre record


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif Avatar de myflash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2011
    Messages : 63
    Par défaut function valeur par defaut sur un parametre record
    comment on passe un parametre par defaut a un parametre record ?

    J'ai un record avec un implicit qui prend un string :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    TTestRec = record
        monStr: string;
        class operator Implicit(const Value: string): TTestRec;
    end;
     
    class operator TTestRec.Implicit(const Value: string): TTestRec;
    var
        a: TTestRec;
    begin
        a.monStr := Value;
        result := a;
    end;
    donc ca je peux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var
    a: TTestRec;
    begin
    a := 'hello';
    end;


    je peux avoir une procedure avec mon record en parametre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure abc (mavar : TTestRec); 
    var
        manewvar : TTestRec;
    begin
        manewvar := mavar;
    end;
    Mais je ne trouve pas comment passer une valeur par defautl :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure abc (mavar : TTestRec = 'ma valeur def'); 
    var
        manewvar : TTestRec;
    begin
        manewvar := mavar;
    end;

  2. #2
    Membre actif Avatar de myflash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2011
    Messages : 63
    Par défaut
    bon ben je pense ma faire une procedure avec et une procedure dans le parametre.... pour l'instant ca vas regler mon trouble mais je vais devoir continuer a chercher

  3. #3
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    alors les paramètres par défaut ne sont possibles que pour des constantes...

    à la rigueur tu aurais pu fait ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    const
      TestRecDefault: TTestRec = (monStr: 'ma valeur def');
     
    procedure abc(const mavar: TTestRec = TestRecDefault);
    begin
     
    end;
    mais tu tombes sur l'errer E2268 Les paramètres de ce type ne peuvent avoir de valeur par défaut.

    il te reste une autre astuce

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    procedure abc(const mavar : TTestRec); overload;
    begin
     
    end;
     
    procedure abs(const S: string = 'ma valeur def'); overload;
    begin
      var mavar :  TTestRec;
      mavar  := S;
      abc(mavar );
    end;
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/07/2008, 15h24
  2. [XSD] definire une valeur par defaut sur le xsd
    Par vanesa dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 25/04/2008, 19h39
  3. valeur par defaut sur une liste déroulante
    Par FCL31 dans le forum IHM
    Réponses: 2
    Dernier message: 28/01/2008, 13h33
  4. valeur par defaut d'un parametre de type date
    Par h_a_m_a_d_a dans le forum BIRT
    Réponses: 8
    Dernier message: 23/02/2007, 11h43
  5. valeur par defaut d'un parametre d'une methode
    Par le y@m's dans le forum C++
    Réponses: 16
    Dernier message: 04/05/2005, 20h23

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