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 :

[Delphi 6] Problème avec la propriété Text d'un composant


Sujet :

Composants VCL Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [Delphi 6] Problème avec la propriété Text d'un composant
    Bonjour tt le monde!

    J'ai un petit problème avec un composant que je viens de créer: le composant hérite d'une classe de composants de type DBMaskEdit (ça veut pas dire grande chose, mais au moins vous le savez). Cette classe n'a pas une propriété Text et je l'ai ajoutée de la façon suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //////////////////////
    type my_class = class(TcxDBmaskEdit)
    ...
    protected
    procedure SetText(const Value: TMaskedText);
    function GetText: TMaskedText;
    ...
    published
    property Text : TMaskedText read GetText write SetText;
    end;
    \\\\\\\\\\\\\\\\\\\\\\\
    Le problème survient quand j'emploie la composante en mode création: en effet la propriété Text est initialisée avec le nom de la composante!
    Ce que je voudrais c'est que ce champs soit vide: j'ai essayé de l'initialiser dans le constructeur, mais ça n'a aucun effet.
    C'est comme s'il y avait un pointeur qui relie le contenu de Text au nom de la composante

    Des idées?


    Merci!

  2. #2
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    As-tu essayé de changé le nom de ta propriété en 'TextE' par exemple (des fois que 'Text' soit déjà au dessus, quoi qu'il te l'aurait signalé normalement, mais sait-on jamais... ?

    As tu essayé de mettre un Defaut derrierre ta prop.

    style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    property Text : TMaskedText read GetText write SetText default '';

    si Ton TMaskedText est de type chaine, sinon faire une constante init.
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Salut!

    alors, j'ai déjà essayé une partie de ce que t'as suggéré:
    - en mettant default, il y a un erreur de compilation "Les valeurs par défaut doivent être de type ordinal, pointeur ou petit ensemble"
    - constante init n'a aucun effet

    TMaskedText est de type string.

    Malheureusement, pour ce qui en est de changer le nom de la propriété, j'obtiens un méchant débordement de pile (en mode création....puis Borland plante....). Ca ce peut que j'ai oublié qqchose...

    En tout cas, en creusant un peu plus, j'ai remarqué que Text dérive d'une classe ancètre:
    my_class <-- TcxDBMaskEdit <-- TcxCustomMaskEdit <-- TcxCustomTextEdit
    dans cette dernière la propriété "Text : string" est définie en tant que public.

  4. #4
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    En rajoutant ça, ça devrait le faire...

    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
    //////////////////////
    type my_class = class(TcxDBmaskEdit)
    ...
    protected
    procedure SetText(const Value: TMaskedText);
    function GetText: TMaskedText; override; //<--- Ajouter le Override
    ...
    published
    property Text : TMaskedText read GetText write SetText;
    end;
    \\\\\\\\\\\\\\\\\\\\\\\
    ...
    function GetText: TMaskedText;
    begin
      if csDesigning in ComponentState then result:=''
      else inherited;
    end;
    Bidouilleuse Delphi

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bien vu waskol!


    (le seul hick, c'est qu'il n'y a pas besoin de "override" car les classes ancètres n'ont pas cette fonction)


    Encore merci!

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

Discussions similaires

  1. problème avec la propriété .text
    Par pclaudel71 dans le forum VB.NET
    Réponses: 3
    Dernier message: 05/06/2008, 22h59
  2. [TMemo] Problème avec la propriété Text
    Par OutOfRange dans le forum Composants VCL
    Réponses: 2
    Dernier message: 17/11/2007, 13h26
  3. [Delphi 6] Problèmes avec SendMessage
    Par KrusK dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 09/09/2005, 11h49
  4. [Delphi 2005] : Problème avec MessageDlg.....
    Par babyface dans le forum Langage
    Réponses: 2
    Dernier message: 08/07/2005, 12h07
  5. [Delphi 3] Problème avec fichier ressource .RES
    Par delphim dans le forum EDI
    Réponses: 2
    Dernier message: 28/06/2005, 18h11

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