TIBTable et TIBQuery - Récupérer les Displaylabel en une seule procedure

sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 - 13 juil. 2007 à 15:33
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 - 15 juil. 2007 à 11:41
Bonjour


A partir du tutoriel de DelphiProg (j'adore ce tutoriel !), j'essaie de
modifier le composant TComboBox pour le remplir automatiquement avec
les displaylabel d'un composant de base de données firebird. Ça donne
ça :


-----------------------------------------------------------------------------------

unit Umdf_ComboBox;


interface


uses stdctrls, IBCustomDataSet;


type TComboBox = Class(stdctrls.TComboBox)

     Private


     Public


     published

              procedure BuildFieldList(ADataSet: TIBDataSet);

     End;


implementation


procedure TComboBox.BuildFieldList(ADataSet: TIBDataSet);

var

   i : integer;

begin

     Items.Clear;

     For i := 0 to ADataSet.Fields.Count - 1 do begin

         Items.Add(ADataSet.Fields[i].DisplayLabel);

     End;

end;

----------------------------------------------------------------------------------


Le problème, c'est que j'aimerais par la suite pouvoir rechercher les
displaylabel d'un TIBTable ou d'un TIBQuery. Existe-t-il un moyen autre
que de faire deux procédures distincte ?


Merci

Simon

10 réponses

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
13 juil. 2007 à 16:30
petite correction de rien du tout :

procedure TComboBox.BuildFieldList(ADataSet: TIBDataSet);
var i : integer;
begin
  with Items do
  begin
    Clear;
    BeginUpdates;
    try
      For i := 0 to ADataSet.Fields.Count-1 do
        Add( ADataSet.Fields[i].DisplayLabel );
    finally
      EndUpdates;
    end;
  end;
end;
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
13 juil. 2007 à 16:50
On pouvait même encore se passer d'un bloc Begin/End 

procedure TComboBox.BuildFieldList(ADataSet: TIBDataSet);
var
   i : integer;
begin
  With Items do Try
    Clear;
    BeginUpdates;
     For i := 0 to ADataSet.Fields.Count - 1 do
         Items.Add(ADataSet.Fields[i].DisplayLabel);
  Finally
    EndUpdates;
  End;
end;

 
@+
Cirec

<hr size ="2" />
0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
13 juil. 2007 à 17:45
Merci les gars...

Mais je voudrais surtour savoir comment ça pourrait marcher avec un ttable et un tibquery... pour le moment, j'ai fait un BuildTFieldList pour le ttable et un
BuildQFieldList pour le tibquery...

Simon
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
13 juil. 2007 à 18:07
Salut !
Toujours dans la logique d'optimisation de Cirec, on pourrait appeler BeginUpdate (sans "s") avant Clear comme ça, on a un rafraîchissement de moins.
Il est quand même préférable d'appeler BeginUpdate avant le "try" (ou alors en tout premier). Sinon, si le code plante entre le "try" et le BeginUpdate, on appelle EndUpdate (qui va décrémenter un compteur que l'on a pas incrémenter... et bousiller tout le code utilisant de nouveau la séquence Beginupdate...Endupdate)

++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
13 juil. 2007 à 19:11
Je suis bien d'accord avec toi florenth... mais ça ne répond pas à la question posée

Simon
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
13 juil. 2007 à 20:26
Simon a raison, revenons à la question posée.

Personnellement, je pense que les champignons, il faudrait les faire sauter.
Les champignons sautés gardent toute leur saveur...
0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
13 juil. 2007 à 21:17
Japee :
A noter que les cepes se font très bien en conserve. Et quand tu les sors du bocal, tu  les sautes à la poele et ils sont comme s'ils étaient frais... (foi de landais !)
(J'aime bien les girolles aussi)

Et sinon, ma question ?

Simon
0
Utilisateur anonyme
14 juil. 2007 à 01:29
"Les champignons sautés gardent toute leur saveur" : Et Buffy aussi elle garde toute sa saveur quand elle est s.... ? (Le big Troll )
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
14 juil. 2007 à 10:28
Les IBTable et IBQuery ne possèdent-ils pas une propriété DataSet par hazard ?
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
15 juil. 2007 à 11:41
@Simon :

J'ai changé l'intitulé et la catégorie de ta question :
"modification de composant", dans la catégorie "Delphi\Divers", ça n'était pas propre à attirer nos éminents spécialistes des bases de données...

Bonne chance.
0
Rejoignez-nous