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 :

default dans une propriété


Sujet :

Langage Delphi

  1. #1
    Membre confirmé Avatar de JustMe
    Inscrit en
    Juillet 2002
    Messages
    479
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 479
    Points : 594
    Points
    594
    Par défaut default dans une propriété
    Bonjour ;
    Je tente de créer un simple composant sous Delphi 2009 mais je n'arrive pas a attribuer une valeur par défaut pour quelque propriétés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
      private
        FRefFieldIndex: integer;
        FDesFieldIndex: integer;
        FWildCardRef: Char;
        FWildCardDes: Char;
    ........
      published
        property RefFieldIndex: Integer read FRefFieldIndex
          write FRefFieldIndex default 0;
        property DesFieldIndex: Integer read FDesFieldIndex
          write FDesFieldIndex default 1;
        property WildCardRef: Char read FWildCardRef write FWildCardRef default #42;
        property WildCardDes: Char read FWildCardDes write FWildCardDes default #47;
    .......
    Après installation du composant les valeurs des propriétés ne sont pas initialisées proprement. (Indiqué en attachement)
    Merci de votre aide
    Images attachées Images attachées  

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 832
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 832
    Points : 13 582
    Points
    13 582
    Par défaut
    Les valeurs par défaut doivent être initialisées dans le constructeur.

    property ... default ... ne concerne que l'écriture dans le dfm.

  3. #3
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    tout à fait :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    type
      TMyCompo = class(TComponent)
      private
        fRefFieldIndex: integer;
        fDesFieldIndex: integer;
        fWildCardRef: Char;
        fWildCardDes: Char;
      published
        property RefFieldIndex: Integer read FRefFieldIndex write FRefFieldIndex default 0;
        property DesFieldIndex: Integer read FDesFieldIndex write FDesFieldIndex default 1;
        property WildCardRef: Char read FWildCardRef write FWildCardRef default #42;
        property WildCardDes: Char read FWildCardDes write FWildCardDes default #47;
      public
        constructor Create(AOwner: TComponent);
      end;
     
     
    constructor TMyCompo.Create(AOwner: TComponent);
    begin
      inherited;
     
      fRefFieldIndex := 0;
      fDesFieldIndex := 1;
      fWildCardRef := #42;
      fWildCardDes := #47; 
    end;

    DEFAULT n'assigne rien à une propriété. il sert uniquement à l'inspecteur d'objet pour savoir si la valeur en cours d'une propriété est à sa valeur par default ou non (auquel cas il l'affiche en gras dans l'inspecteur d'objet).
    Quand il sauvegarde l'objet dans le DFM, si la propriété est à sa valeur par défaut, alors il ne la sauvegarde pas.
    cela permet de ne pas tout sauver dans un objet, afin d'alleger les DFM.

  4. #4
    Membre confirmé Avatar de JustMe
    Inscrit en
    Juillet 2002
    Messages
    479
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 479
    Points : 594
    Points
    594
    Par défaut
    oups j'ai cru que s'était stored qui était responsable de sauvegarder les valeurs dans les dfm.
    Merci à vous très sympa.
    ça marche nickel.

  5. #5
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    stored force la sauvegarde, toute les propriété sont "stored" par défault.

    généralement on précise stored false pour désactiver justement l'enregistrement d'un propriété (un pointeur par exemple)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    property ptr : pointer read getpointer write setpointer default nil stored false;

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

Discussions similaires

  1. variable incluse dans une propriété
    Par aviaur dans le forum ANT
    Réponses: 1
    Dernier message: 24/10/2006, 20h31
  2. Réponses: 4
    Dernier message: 03/07/2006, 17h00
  3. Introduire une variable dans une propriété
    Par priest69 dans le forum Access
    Réponses: 7
    Dernier message: 21/10/2005, 18h31
  4. [C#]liste de choix dans une propriété d'un user control
    Par LeDeveloppeurDotNet dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/10/2005, 13h41
  5. [Composant] Dialogue dans une propriété
    Par Raylemon dans le forum Composants VCL
    Réponses: 10
    Dernier message: 03/08/2005, 20h05

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