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 :

combo avec ligne différente


Sujet :

Composants VCL Delphi

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    866
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 866
    Par défaut combo avec ligne différente
    Bonjour,

    Je voudrais avec une DBComboBox faire ceci:

    1) Remplir par programme la combo avec un fichier de donnée (liste des pays + identifiant pays en storedString)

    2) je voudrais rajouter 1 ligne en haut '<tous>' qui me renvoi -1

    Est ce que c'est techniquement possible ?


    Cordialement

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    866
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 866
    Par défaut auto réponse
    Bonjour

    j'ai réussi à faire ceci: (avec une combo TMS et un PGdac)

    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
     
       AdvDBComboBox1.Items.Clear;
       AdvDBComboBox1.AddDisplayAndStoredValue('<Tous>','-1');
     
      client := TPgQuery.Create(nil);
      try
        client.Connection := PgConnection1;
        client.SQL.Text := 'SELECT clnom ,client_id FROM client order by clnom';
        client.Open;
     
        client.First;
        while not client.Eof do
        begin
     
        AdvDBComboBox1.AddDisplayAndStoredValue(client.FieldByName('clnom').AsString,client.FieldByName('client_id').AsString);
     
        client.Next;
        end;
     
      finally
        client.Free;
      end;
     
        AdvDBComboBox1.ItemIndex := 0;
    ça à l'air de fonctionner

    Sur l'événement lookup de la combo, je récupère bien l'identifiant du pays ou -1

    Par contre la DBcombo est relié à rien ? Est ce que c'est génant ?
    Une combo simple aurait suffit mais j'ai l'impression que la combo simple ne gère par les StoredValue

    Que pensez vous ?

    Cordialement

  3. #3
    Membre expérimenté
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Décembre 2014
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Décembre 2014
    Messages : 111
    Par défaut
    Bonjour,
    Un petit exemple, qui charge un combo à partir d'un fichier "old mode" :-) vu que tu n'as indiqué aucune DB.
    C'est basic, pas de gestion d'erreur ni de verif d'existence du fichier, c'est pour vous montrer comment charger un combo.
    Si vos pays proviennent d'une table, il suffira de boucler sur les records, c'est pareil.

    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
    type
      t_Pays = record
        Code:  String[3];    // Code ISO NUM des pays
        Nom:   String[50];   // Nom du Pays
        Capitale: String[50];
        // les autres infos que tu as
      end;
     
    function TForm2.LoadCombo(aFileName: String): Integer;
    var
      FiPays : File of t_Pays;
      wPays: t_Pays;
    begin
      result := 0;
      ComboBox1.Items.Clear;
      AssignFile( FiPays, aFileName);
      Reset( FiPays );
      while not Eof( FiPays ) do
      begin
         Read( FiPays, wPays);
         With wPays do
          // le code sera par exemple ici : '033-FRANCE"
           ComboBox1.Items.Add(Format('%3s-%s', [ wPays.Code, wPays.Nom ] ));
         result := result +1;
      end;
      if result >0 then 
          ComboBox1.Items.Insert(0, 'tous ...');
     
    end;
     
    procedure TForm2.Button1Click(Sender: TObject);
    var NbPays:  Integer;
    begin
       NbPays := LoadCombo('PAYS.FCH');
    end;
    Solilog

Discussions similaires

  1. [WD20] Combo avec 1ere ligne personnalisée
    Par FB4200 dans le forum WinDev
    Réponses: 4
    Dernier message: 16/04/2023, 19h02
  2. [WM18] Souci avec Combo (1ère Ligne personnalisée) ANDROID
    Par b_reda31 dans le forum Windev Mobile
    Réponses: 2
    Dernier message: 15/08/2015, 02h10
  3. [C#] Application avec lignes de commande
    Par Oberown dans le forum Windows Forms
    Réponses: 1
    Dernier message: 13/10/2005, 17h26
  4. Pb import fichier txt avec lignes de longueurs diverses
    Par zebulon90 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/12/2004, 08h32
  5. [CR .NET] Table croisée: compléter avec lignes vides
    Par kartben dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 29/06/2004, 10h38

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