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 :

[composants] combobox à la mano


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 59
    Par défaut [composants] combobox à la mano
    Bonjour,

    Pour les besoins d'un projet je dois recreer 'manuellement' une combobox.
    et j'ai quelques problemes a mettre ca au point.

    En m'inspirant de TDbLookupComboBox, j'arrive a gerer une liste qui apparait lorsque qu'on appuie sur la fleche.

    Mon probleme est que lorsque l'on clique sur la liste deroulée, la fenetre principale perd le focus (barre de titre grisée) et le recupere une fois que j'ai relaché le bouton (la liste se ferme).

    J'ai recopié à partir du DbLookUp:

    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
     
    procedure TPopupList.CreateParams(var Params: TCreateParams);
    begin
      inherited CreateParams(Params);
      with Params do
      begin
        Style := WS_POPUP{ or WS_CLIPCHILDREN};
        ExStyle := WS_EX_TOOLWINDOW;
        WindowClass.Style := {WindowClass.Style or} CS_SAVEBITS;
      end;
    end;
     
    procedure TPopupList.WMMouseActivate(var Msg: TMessage);
    begin
        Msg.Result := MA_NOACTIVATE;
    end;
     
    constructor TPopupList.Create(AOwner: TComponent);
    begin
      inherited Create(AOwner);
     
      ControlStyle := ControlStyle + [csNoDesignVisible, csReplicatable];
      Visible := False;
    end;
    Le Hide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      SetWindowPos(Handle, 0, 0, 0, 0, 0, SWP_NOZORDER or
        SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE or SWP_HIDEWINDOW);
      Visible := False;
    Le Show
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      SetWindowPos(Handle, HWND_TOP, Origin.X, Origin.Y, 0, 0,
        SWP_NOACTIVATE or SWP_SHOWWINDOW or SWP_NOSIZE);
      Visible := True;
    Apparement c'est le meme code que pour le compo BD, mais le comportement n'est pas le meme lorsqu'on clique sur la liste dépliée

    Quelqu'un a une idée de ce que j'ai oublié ? mal fait ? autre.. ?

    Merci d'avance,

  2. #2
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Par défaut
    Pourquoi doit tu refaire un composant qui existe dejà ?
    Un héritage ne suffirait il pas ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 59
    Par défaut
    On doit pouvoir (entre autre) changer toutes les couleurs de la combo, celle qui pose soucis est la bordure de la liste deroulante....

    Toute cette galere (parce que ce compo doit etre un des plus compliqués ! ) a cause de ce liseret noir....

    Evidemment, si quelqu'un a une solution pour personnaliser ce liseret (autre que de changer le theme windows) je suis preneur (il y a qd mm plusieurs personnes qui ont deja essayé en vain..)

    Mais je crois que la seule solution est de se taper le compo a la main, donc si quelqu'un a deja eu a developper ce genre de composant et peut me faire profiter de cette experience cela serait genial !!!

Discussions similaires

  1. Existance Composant ComboBox en access
    Par franck SEFIC dans le forum Access
    Réponses: 6
    Dernier message: 18/07/2007, 21h26
  2. Problème avec un composant ComboBox
    Par florette dans le forum Composants VCL
    Réponses: 4
    Dernier message: 08/05/2006, 13h07
  3. composant combobox dans dbgrid
    Par khier dans le forum Composants VCL
    Réponses: 2
    Dernier message: 04/04/2006, 08h42
  4. [composants] combobox personnalisée
    Par pirbd dans le forum Composants VCL
    Réponses: 1
    Dernier message: 23/01/2006, 10h04
  5. [VB.NET] Problème sur composant comboBox hérité
    Par SergeF dans le forum Windows Forms
    Réponses: 3
    Dernier message: 08/06/2004, 14h54

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