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;
|