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 :

propriété non visible


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Par défaut propriété non visible
    Bonjour,


    j'ai créé un composant pour lequel j'ai un souci avec une propriété qui n'est pas visible sans que j'arrive à me l'expliquer.

    voici une partie du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      private
        { Déclarations privées }
        // Récupération du numéro de bac d'après son nom //
        function GetBinNumber(PrinterName, BinName:String):Word;
        // Récupération du nom de bac d'après son numéro //
        function GetBinName(PrinterName:String; BinNumber:Word):String;
     
      protected
        { Déclarations protégées }
      public
        { Déclarations publiques }
        property BinName[PrinterName:String; BinNumber:Word]:String read GetBinName;
        property BinNumber[PrinterName, BinName:String]:Word read GetBinNumBer;
    la propriété BinName est visible et fonctionne parfaitement alors que la propriété BinNumber elle n'est pas visible.

    Une explication ?

    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 292
    Par défaut
    elle n'est pas visible où ? dans le menu déroulant qui te propose une liste de propriété/méthodes ?

    Une explication qui me vient à l'esprit, c'est que ton code ressemble à

    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
     
    TMyObject= class
    private 
        { Déclarations privées } 
        // Récupération du numéro de bac d'après son nom // 
        function GetBinNumber(PrinterName, BinName:String):Word; 
        // Récupération du nom de bac d'après son numéro // 
        function GetBinName(PrinterName:String; BinNumber:Word):String; 
     
      protected 
        { Déclarations protégées } 
      public 
        { Déclarations publiques } 
        property BinName[PrinterName:String; BinNumber:Word]:String read GetBinName; 
        property BinNumber[PrinterName, BinName:String]:Word read GetBinNumBer; 
     
    end;
     
    function aze(b: TMyObject)
    var
      a: string;
    begin
      a := b. 
    end;
    Comme tu tentes d'affecter une propriété de b à a qui est un string, Delphi filtre parmi toutes les propriétés/functions celles qiu ne renvoie pas de string. En particulier, ta propriété BinNumber.

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2002
    Messages
    409
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 409
    Par défaut
    Salut,
    Pour qu'elle soit visible, et donc accessible dans le concepteur, tu doit la declarer dans Published, et non pas dans Public.
    Regarde dans l'aide : Creation de composants Personnalises

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 292
    Par défaut
    effectivement kase74.

    putain j'ai vraiment répondu complètement à côté de la plaque.

  5. #5
    Membre chevronné Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Par défaut
    merci pour vos réponse,


    quand j'ai dit visible, je n'ai pas utilisé le bon terme car en fait je m'en tape qu'elle soit visible dans le concepteur, ce que je veux c'est qu'elle soit accessible par exemple comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    var NomBac : string;
          Numbac : Word;
    begin
          NomBac = BinName('HP Laserjet', 259);
          NumBac = BinNumber('HP Laserjet', 'Bac du haut');
    actuellement ça fonctionne pour BinName mais pas pour BinNumber donc ça n'est pas un problème de Published ou alors il faut qu'on éclaire mon esprit qui a déjà fait largement preuve de logique et de raison.

    j'ai lu le guide du concepteur de composants (depuis longtemps) mais je n'ai rien vu qui explique ça ou alors j'ai mal lu...

    merci

  6. #6
    Expert confirmé

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Par défaut
    Effectivement Public est suffisant dans ton cas.

    Quelle est le message d'erreur exact ?
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  7. #7
    Membre chevronné Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Par défaut
    je n'ai aucun message d'erreur, c'est ça le problème...

  8. #8
    Expert confirmé

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Par défaut
    Citation Envoyé par chtiot
    je n'ai aucun message d'erreur, c'est ça le problème...
    Gné

    Alors quel est le problème ?
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  9. #9
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 575
    Par défaut
    Salut

    je ne comprend pas ton problème :
    - cela ne compile-t'il pas ?
    - ou cela produit-il un résultat bizarre à l'exécution ?

    je ne comprend pas dans quel sens tu emplois Visibilité.

    par contre dans ton exemple de code tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var NomBac : string;
          Numbac : Word;
    begin
          NomBac = ??.BinName('HP Laserjet', 259);
          NumBac = ??.BinNumber('HP Laserjet', 'Bac du haut');
    où est passé la variable désignant l'objet (j'ai ajouté des ?? où cela manque), ou bien utilises-tu une construction With mais c'est pas clair (si BinName est aussi une procédure, cela peut expliquer bien des choses sur le comportement de ton programme).

    Cordialement

    e-ric

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  10. #10
    Membre chevronné Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Par défaut
    Autant pour moi, j'ai trouvé mon erreur : lorsque je faisais

    [/code]NumBac := MonComposant.BinNumber['HP Laserjet', 'Bac du haut'];
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    la variable NumBac n'était pas déclarée du même type que BinNumber et donc BinNumber n'apparaissait pas lorsque je frappais MonComposant. et que l'ide proposait les propriétés.
     
    Perdre autant de temps sur une erreur aussi basique mérite une lapidation...
     
    mes excuses pour le dérangement et merci de votre aide

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 292
    Par défaut
    je réponds à côté de la plaque et j'ai quand même bien répondu.

    je suis un génie 8)

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

Discussions similaires

  1. [TFiler, TWriter] Propriété non publiée : Ancestor kesako ?
    Par phplive dans le forum Composants VCL
    Réponses: 5
    Dernier message: 13/07/2005, 15h34
  2. [ClassLoader]icones non visibles
    Par phil_ma dans le forum Général Java
    Réponses: 4
    Dernier message: 19/01/2005, 21h09
  3. Capture d'une form non visible
    Par Linkin dans le forum Composants VCL
    Réponses: 3
    Dernier message: 14/04/2004, 15h58
  4. Réponses: 4
    Dernier message: 07/12/2002, 16h24
  5. Form principale non visible au demarrage!!!!
    Par toufou dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/07/2002, 22h49

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