IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)



Comment remplir une grille avec le contenu d'une table ?
auteur : Didier Largange
Les grilles non connectées (par opposition aux DBGrid) disposent souvent de plus de possibilités de manipulation : tris, dimensionnements des lignes, colorations, etc...
Cette méthode peut donc vous être utile quand vous n'avez besoin que d'un accés en lecture au contenu d'une table ou d'une requête. De plus, une fois la grille remplie, vous pouvez réutiliser votre requête par exemple pour réaliser d'autres actions.
Deux propriétés importantes des ensembles de données (TDataSet) sont utilisées dans le code ci-dessous :
- la propriété FieldCount qui donne le nombre de colonnes nécessaires
- la propriété Fields qui contient les données de l'enregistrement en cours

         procedure TMyForm.Remplir;
         var
                 ligne, colonne: Integer;
         begin
                 with DataSet do
                 begin
                         Open;
                        
                         // Dimensionnement de la grille
                         MyStringGrid.RowCount := 2;
                         MyStringGrid.ColCount := FieldCount;
                        
                         // Remplissage des entêtes
                         for colonne := 0 to MyStringGrid.ColCount - 1 do
                                 MyStringGrid.Cells[colonne, 0] := Fields[colonne].DisplayName;
                        
                         // Données
                         First;
                         ligne := 1;
                         while not Eof do
                         begin
                                 for colonne := 0 to StringGrid1.ColCount-1 do
                                         MyStringGrid.Cells[colonne, ligne] := Fields[colonne].AsString;
                                 Next;
                                 Inc(ligne);
                                 if not Eof then
                                         MyStringGrid.RowCount := MyStringGrid.RowCount + 1;
                                
                         end;
                         Close;
                 end;
                
         end;


Ce document issu de www.developpez.com est soumis à la licence GNU FDL traduit en français ici
Permission vous est donnée de distribuer, modifier des copies de cette page tant que cette note apparaît clairement.