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 :

Etude du composant TComboBox


Sujet :

Composants VCL Delphi

  1. #1
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 258
    Points : 156
    Points
    156
    Par défaut Etude du composant TComboBox
    Je suis en train de faire mon propre composant, et j'ai besoin de 'Items' comme dans les combobox. Pas que je dois les afficher (mon composants fait une fenêtre...) mais je voudrais que dans l'IDE cela fonctionne de la même manière.

    Donc je me suis mis à lire les sources du TCombobox (et parents);

    Cela lève quelques questions :

    Certains type (comme TComboStrings) est déclaré dans la zone d'implémentation. Pourquoi? Que cela change-t-il?

    Aussi, le FItems est instancié dans le Create par :

    FItems := GetItemsClass.Create;



    function TCustomComboBox.GetItemsClass: TCustomComboBoxStringsClass;
    begin
    Result := TComboBoxStrings;
    end;

    et

    TCustomComboBoxStringsClass = class of TCustomComboBoxStrings;

    Là, je suis un peu perdu. Quelque'un peut-il m'aider (ou me diriger vers un endroit où je pourrais comprendre cela?)

    Merci

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 300
    Points
    11 300
    Billets dans le blog
    6
    Par défaut
    la déclaration dans la section implémentation limite la visibilité à l'unité => manipulable exclusivement en interne et non redéclarable avec une portée plus large

    FItems := GetItemsClass.Create; // permet de créer le champ adapté en détectant sa classe, donc sans connaître son type à la compilation (utile pour les classes dérivées)

    pour le TComboBox qui dérive d'un objet avec un champ FItems, les Items sont du type TComboBoxStrings, ce qui est déclaré en implémentant la fonction GetItemsClass puis manipulé de manière générique par des fonctions ancêtres
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

Discussions similaires

  1. Problèmes avec le composant TComboBox
    Par ZenZiTone dans le forum Débuter
    Réponses: 1
    Dernier message: 23/04/2014, 10h40
  2. Passer un composant Tcombobox en parametre
    Par bboy_lil_mak dans le forum Débuter
    Réponses: 13
    Dernier message: 15/11/2013, 14h25
  3. Problèmes sur composant TComboBox
    Par Ziginou dans le forum Composants VCL
    Réponses: 9
    Dernier message: 08/12/2011, 13h31
  4. [WIN32][d7] Existance composant (Tmenu couplé avec TComboBox) ?
    Par hepha1970 dans le forum Composants VCL
    Réponses: 0
    Dernier message: 09/12/2007, 14h50

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