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 :

Création d'un composant composite


Sujet :

Composants VCL Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Passion pour la programmation
    Inscrit en
    Novembre 2015
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : Passion pour la programmation
    Secteur : Services à domicile

    Informations forums :
    Inscription : Novembre 2015
    Messages : 101
    Points : 123
    Points
    123
    Par défaut Création d'un composant composite
    Bonsoir,
    Est-ce qu'il y a un composant qui englobe un TEdit avec un champ de recherche et un TComboBox avec des items et un TButton pour lancer une recherche ?
    Pour vraiment être plus clair :
    Lorsque la tabulation est dans TEdit, je fais défiler une liste déroulante d'items. Je sélectionne un item dans la liste puis j'écris le mot de recherche puis je lance la recherche avec le bouton.

    Mais est-ce que je peux englober tout cela en un seul composant ?

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259

  3. #3
    Membre régulier
    Homme Profil pro
    Passion pour la programmation
    Inscrit en
    Novembre 2015
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : Passion pour la programmation
    Secteur : Services à domicile

    Informations forums :
    Inscription : Novembre 2015
    Messages : 101
    Points : 123
    Points
    123
    Par défaut
    Merci popo
    mais ça fait beaucoup de travail pour réaliser un composant utiles

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Un composant ne doit pas non plus être trop spécifique, le but c'est quand même de pouvoir le réutiliser dans différentes situations
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Citation Envoyé par mamiF Voir le message
    Merci popo
    mais ça fait beaucoup de travail pour réaliser un composant utiles
    Réaliser un composant, c'est du travail.
    Et non, ça ne se fait pas tout seul.
    La charge de travail dépendra de ce que tu souhaites faire.
    Et comme le souligne ShaiLeTroll, son but est d'être réutilisable.
    Je rajouterai que plus, il est simple à utiliser, meilleurs c'est.
    C'est pourquoi en règle général, on y passe du temps.

    Citation Envoyé par mamiF
    Lorsque la tabulation est dans edit je défile une liste déroulante d'items que je sélectionne un item dans la liste
    Jusque-là ça ressemble à un simple combo avec la propriété Style en DropDown.

    Citation Envoyé par mamiF
    puis j'écris le mot de recherche
    à partir de là, j'ai du mal à voir ce que tu veux faire.
    Tu écrit ce mot de recherche où ? Dans l'édit ou tu viens de saisir ?

  6. #6
    Membre régulier
    Homme Profil pro
    Passion pour la programmation
    Inscrit en
    Novembre 2015
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : Passion pour la programmation
    Secteur : Services à domicile

    Informations forums :
    Inscription : Novembre 2015
    Messages : 101
    Points : 123
    Points
    123
    Par défaut
    Nom : composant.PNG
Affichages : 370
Taille : 4,5 Ko

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Citation Envoyé par popo Voir le message
    Jusque-là ça ressemble à un simple combo avec la propriété Style en DropDown.
    à partir de là, j'ai du mal à voir ce que tu veux faire.
    Sois sérieux ... c'est un truc ultra-classique.

    Un exemple ici (<- lien, mais avec la flèche bas au lieu de la touche espace pour déplier toute la liste)

  8. #8
    Membre régulier
    Homme Profil pro
    Passion pour la programmation
    Inscrit en
    Novembre 2015
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : Passion pour la programmation
    Secteur : Services à domicile

    Informations forums :
    Inscription : Novembre 2015
    Messages : 101
    Points : 123
    Points
    123
    Par défaut
    merci fœtus
    avec ce composant je select un item dans la liste déroulante
    puis j’écris le mots de recherche puis je clic dans le bouton de recherche dans une BD
    avec un combo je select un item simplement

  9. #9
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 387
    Points : 2 999
    Points
    2 999
    Par défaut
    il me semble que c'est assez facile pour réaliser ce genre liste avec recherche intégrée avec la dernière version de Delphi et que Maxime en avait fait la démonstration mais je devais être dans la lune à ce moment parce que je ne me souviens plus de la méthode employée

  10. #10
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Est-ce que le mot dans la combo celui qui sera recherché ou c'est deux données différentes ?

    Si c'est deux données différentes
    Pour moi, avec un TEdit avec une image bouton à gauche pour le sélecteur, et à droite pour la recherche
    coupler par exemple avec une combo ou un popup menu

    Si c'est la même donnée
    Suffit de mettre la recherche dans le OnCloseUp
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  11. #11
    Membre régulier
    Homme Profil pro
    Passion pour la programmation
    Inscrit en
    Novembre 2015
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : Passion pour la programmation
    Secteur : Services à domicile

    Informations forums :
    Inscription : Novembre 2015
    Messages : 101
    Points : 123
    Points
    123
    Par défaut
    bonsoir,
    si je veut travailler ce type de composant
    j'aurais besoin d'une propriété edit.items edit.itemindex et d'un évènement bitbtn.click
    je s'est que la propriété edit na pas d'items mais est ce que c'est possible de travailler quelque chose comme ca
    dans la jvcl j'ai trouver jvcomboedit(un edit avec boutton) mais si vraiment y a un items ça serait parfait

  12. #12
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    En gros, tu as juste besoin de mettre une TComboBox et un TButton juste à côté.
    Mais du coup, cela semble pas bien clair dans tes explications.

    J'ai travaillé sur un composant un peu dans cette idée, un TComboBox avec un bouton DropDown, un second pour recherche avancée, un bouton pour ajouter un élément
    Je n'en ai pas les sources mais cela fonctionnait que le TLabeledEdit, c'est un control supplémentaire qui était ajouté avec le TEdit

    Comme déjà par nous proposer un control hérité d'un TComboxBox et qui ajoute un bouton juste à côté en t'inspirant du TLabeledEdit
    Tu verras c'est le plus formateur d'étudier un composant existant comme le TLabeledEdit
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  13. #13
    Membre régulier
    Homme Profil pro
    Passion pour la programmation
    Inscrit en
    Novembre 2015
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : Passion pour la programmation
    Secteur : Services à domicile

    Informations forums :
    Inscription : Novembre 2015
    Messages : 101
    Points : 123
    Points
    123
    Par défaut
    merci shailetroll
    Nom : TP.PNG
Affichages : 362
Taille : 6,7 Ko

  14. #14
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Si c'est deux données différentes
    Pour moi, avec un TEdit avec une image bouton à gauche pour le sélecteur, et à droite pour la recherche
    coupler par exemple avec une combo ou un popup menu
    Donc tu réponds à ma question, TEdit contient une valeur et la Combo une autre valeur
    Si la Combo n'est pas modifiable et courte, un TPopupMenu ferait l'affaire sinon,
    Tu peux aussi réduire la ComboBox juste à la taille de son bouton pour faire juste apparaitre la liste dans la partie saisie,
    pour ma part, je l'ai fait avec des TMaskEdit + TButton que je remplaçais à la volée par un TDateTimePicker pour avoir le bouton calendrier mais en supersant le TMaskEdit plus fluide en saisie et le tout fonctionnant en Delphi 3 (aujourd'hui c'est Delphi 25 ou plus)

    tu peux très bien affiché une TForm contenant un TLisbBox créé à la volée, tient moi j'ai fait ceci pour faire un sélecteur de localisation (Magasin = Plateforme de Stockage)
    Pour que la TForm se comporte comme celle d'un Liste de Combo, suffit de redéfinir CreateParams

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //------------------------------------------------------------------------------
    procedure TxxxForm.CreateParams(var Params: TCreateParams);
    begin
      Params.ExStyle := Params.ExStyle and not WS_EX_NOACTIVATE;
     
      inherited CreateParams(Params);
    end;
    Ce code est évidememment bien plus poussé que l'affichage d'une pauvre ListBox !
    C'est juste pour te montrer que créer une fenêtre dynamiquement c'est très facile

    Faudrait maintenant que tu te lances et que nous propose quelque chose
    Cela fait dix jours que tu as ouvert ce post, on attend que tu avances pour t'aider, on ne va pas te fournir le code tout prêt !

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    //------------------------------------------------------------------------------
    function TxxxModuleLocalisation.ShowChoice(AMagasinList: TStrings; AMagasinImageList: TImageList): Integer;
    var
      Form: TForm;
      ListView: TListView;
      ButtonCancel: TBitBtn;
      I: Integer;
      OffSets: record
        Height: Integer;
        Width: Integer;
      end;
      LastPosition: record
        Top: Integer;
        Left: Integer;
      end;
    begin
      Result := -1;
      if (AMagasinList.Count = AMagasinImageList.Count) and (AMagasinList.Count > 0) then
      begin
        Form := TForm.Create(nil);
        try
          Form.Position := poScreenCenter;
          Form.Caption := 'Plateforme de traitement';
     
          ListView := TListView.Create(Form);
          ListView.Parent := Form;
          ListView.Align := alClient;
          ListView.ViewStyle := vsIcon;
          ListView.LargeImages := AMagasinImageList;
          ListView.OnClick := ShowChoiceClick;
          ListView.OnResize := ShowChoiceResize;
     
          for I := 0 to AMagasinList.Count - 1 do
          begin
            with ListView.Items.Add() do
            begin
              Caption := AMagasinList[I];
              ImageIndex := I;
            end;
          end;
          ListView.ItemIndex := -1;
     
          ButtonCancel := TBitBtn.Create(Form);
          ButtonCancel.Parent := Form;
          ButtonCancel.Align := alBottom;
          ButtonCancel.Kind := bkClose;
     
          Form.Width := Screen.WorkAreaWidth;
          Form.Height := Screen.WorkAreaHeight;
          ListView.Arrange(arAlignTop);
     
          OffSets.Height := AMagasinImageList.Height;
          OffSets.Width := AMagasinImageList.Width;
          LastPosition.Top := 0;
          LastPosition.Left := 0;
          for I := 0 to ListView.Items.Count - 1 do
          begin
            with ListView.Items[I].DisplayRect(drBounds) do
            begin
              // DisplayRect donne la zone de sélection mais pas l'espacement entre les éléments
              OffSets.Height := Max(OffSets.Height, Height);
              OffSets.Width := Max(OffSets.Width, Width);
     
              // Changement de Ligne
              if Top > LastPosition.Top then
                OffSets.Height := Max(OffSets.Height, Top - LastPosition.Top);
              // Changement de Colonne
              if Left > LastPosition.Left then
                OffSets.Width := Max(OffSets.Width, Left - LastPosition.Left);
     
              LastPosition.Top := Top;
              LastPosition.Left := Left;
            end;
          end;
     
          Form.ClientWidth := Min(4, AMagasinImageList.Count) * OffSets.Width + GetSystemMetrics(SM_CXHSCROLL) + Form.ClientWidth - ListView.ClientWidth;
          Form.ClientHeight := Ceil(AMagasinImageList.Count / 4) * OffSets.Height + ButtonCancel.Height + Form.Height - ListView.Height;
     
          if Form.ShowModal() = mrOk then
            Result := ListView.ItemIndex;
        finally
          Form.Free();
        end;
      end;
    end;
    Et voici le résultat censuré
    Nom : Sans titre.jpg
Affichages : 334
Taille : 100,5 Ko



    la bidouille qui remplaçait en Delphi 3 (une version d'avant l'an 2000) un TMaskEdit+TButton par un TDateTimePicker
    C'était selon une option de l'utilisateur si il utilisait le Calendrier de Windows pour alors un horrible calendrier créé par un collègue et que l'on imposait l'utilisation parce qu'il ne connaissait pas le TDateTimePicker !
    Ce code fonctionnait aussi en Delphi 7

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    //------------------------------------------------------------------------------
    procedure TFrmxxx.CreateDateTimePicker;
    type
      PMaskEditButton = ^TMaskEditButton;
      TMaskEditButton = record
        MaskEdit: Pointer;
        Button: Pointer;
      end;
     
      // --- Fonction interne ----------------------------------------------------
      procedure GetListEdDateRecursive(ParentControl: TControl; var List: TList);
      var
         ic: integer;
         ButtonName: String;
         lpMaskEditButton: PMaskEditButton;
      begin
           // La liste Controls contient les Objets dépendant visuellement (imbrication) de leur parent
           // La liste Components contient les Objets dépendant logiquement (mémoire) de leur propriétaire (Owner)
           if ParentControl is TMaskEdit then begin
              if Copy(ParentControl.Name, 1, Length('EdDate')) = 'EdDate' then begin
                 if Assigned(ParentControl.Parent) then begin
                    ButtonName := 'Btn' + Copy(ParentControl.Name, 3, Length(ParentControl.Name) - 2);
                    for ic := 0 to TWinControl(ParentControl.Parent).ControlCount  - 1 do begin
                        if TWinControl(ParentControl.Parent).Controls[ic].Name = ButtonName then begin
                           New(lpMaskEditButton);
                           lpMaskEditButton^.MaskEdit := TMaskEdit(ParentControl);
                           lpMaskEditButton^.Button := TButton(TWinControl(ParentControl.Parent).Controls[ic]);
                           List.Add(lpMaskEditButton);
                           Break;
                        end;
                    end;
                 end;
              end;
              Exit;
           end;
     
           // "is" renvoie True si ParentControl est un TWinControl ou un Objet d'une Classe dérivée
           if ParentControl is TWinControl then begin
              for ic := 0 to TWinControl(ParentControl).ControlCount  - 1 do begin
                  GetListEdDateRecursive(TWinControl(ParentControl).Controls[ic], List);
              end;
           end;
      end;
    var
       ListEdDate: TList;
       TmpDateTimePicker: TDateTimePicker;
       iled: Integer;
       TmpMaskEditButton: TMaskEditButton;
    begin
         ListEdDate := TList.Create();
         try
            GetListEdDateRecursive(Self, ListEdDate);
            for iled := 0 to ListEdDate.Count - 1 do begin
                // Stockage de la Structure dans une Variable Temporaire
                TmpMaskEditButton := TMaskEditButton(ListEdDate.Items[iled]^);
     
                // Création du TDateTimePicker
                TmpDateTimePicker := TDateTimePicker.Create(Self); // le Owner le détruira !
                TmpDateTimePicker.Name := 'Picker' + Copy(TWinControl(TmpMaskEditButton.MaskEdit).Name, 3, Length(TWinControl(TmpMaskEditButton.MaskEdit).Name) - 2);
                TmpDateTimePicker.BoundsRect := TWinControl(TmpMaskEditButton.MaskEdit).BoundsRect;
                TmpDateTimePicker.Parent := TWinControl(TmpMaskEditButton.MaskEdit).Parent;
                TmpDateTimePicker.OnCloseUp := AllDateTimePickerCloseUp;
                TmpDateTimePicker.TabStop := False;
                TmpDateTimePicker.Visible := True;
                TmpDateTimePicker.SendToBack();
     
                // "Suppression" de l'ancien Bouton ...
                TWinControl(TmpMaskEditButton.Button).Visible := False;
     
                // Redimensionnement du MaskEdit
                TMaskEdit(TmpMaskEditButton.MaskEdit).Left   := TMaskEdit(TmpMaskEditButton.MaskEdit).Left   + 3;
                TMaskEdit(TmpMaskEditButton.MaskEdit).Top    := TMaskEdit(TmpMaskEditButton.MaskEdit).Top    + 3;
                TMaskEdit(TmpMaskEditButton.MaskEdit).Width  := TMaskEdit(TmpMaskEditButton.MaskEdit).Width  - 6;
                TMaskEdit(TmpMaskEditButton.MaskEdit).Height := TMaskEdit(TmpMaskEditButton.MaskEdit).Height - 6;
                TMaskEdit(TmpMaskEditButton.MaskEdit).BorderStyle := bsNone;
                TMaskEdit(TmpMaskEditButton.MaskEdit).Width  := TMaskEdit(TmpMaskEditButton.MaskEdit).Width  - GetSystemMetrics(SM_CXVSCROLL);
            end;
         finally
                for iled := ListEdDate.Count - 1 downto 0 do begin
                    Dispose(ListEdDate.Items[iled]);
                end;
                ListEdDate.Free();
         end;
    end;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  15. #15
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Citation Envoyé par foetus Voir le message
    Sois sérieux ... c'est un truc ultra-classique.

    Un exemple ici (<- lien, mais avec la flèche bas au lieu de la touche espace pour déplier toute la liste)
    Justement non ! Avec cette histoire de TEdit en plus, ce n'est pas un truc classique.
    Le truc classique aurait été un combo éditable et un bouton.

    Bon, en tout cas, Mamif a déjà quelques pistes.

  16. #16
    Membre régulier
    Homme Profil pro
    Passion pour la programmation
    Inscrit en
    Novembre 2015
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : Passion pour la programmation
    Secteur : Services à domicile

    Informations forums :
    Inscription : Novembre 2015
    Messages : 101
    Points : 123
    Points
    123
    Par défaut
    Merci a tous pour votre compréhension
    un composant (popup,edit,button) de pouvoir ancré tout ça des fois sa m'inspire
    un style de design que je trouve plutôt adapter a tel situation
    j'ai trouver un composant de la jvcl JvComboEdit1 et vraiment trop bien (travailler une partie de ce composant )
    les idées sont un peut flou pou moi :

    pour une liste déroulante je choisi (popupmenu ou une forme )
    ajout d'un item supprimer un items sélection d'un item

    property OnButtonClick;
    pour le button GlyphKind = (gkCustom, gkDefault, gkDropDown, gkEllipsis) et Glyph


    property OnChange
    avec edit: c'est l'utilisateur qui doit fournir une information

Discussions similaires

  1. [Création de composant] Surcharge de OnMouseMove
    Par yoghisan dans le forum Composants VCL
    Réponses: 2
    Dernier message: 18/02/2004, 22h34
  2. [Création de composant] Composant exclu de ComponentCount
    Par yoghisan dans le forum Composants VCL
    Réponses: 6
    Dernier message: 18/02/2004, 12h45
  3. [Création de composant] Focus
    Par Pedro dans le forum Composants VCL
    Réponses: 4
    Dernier message: 16/02/2004, 13h57
  4. Ordre de création de composant
    Par bobby-b dans le forum Composants VCL
    Réponses: 4
    Dernier message: 15/09/2003, 19h05
  5. [Kylix] Création de composant
    Par glub dans le forum EDI
    Réponses: 2
    Dernier message: 08/01/2003, 16h58

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