2009-10-12 6 views

Répondre

3

Les données contenues dans un TdbGrid ne peuvent être stockées que dans un objet décimal TDataSet. Donc, je soupçonne ce que vous demandez est comment obtenir l'information dans un TDataset dans un TListView.

En gros, cela pourrait être fait avec le code suivant.

procedure TForm13.DisplayData(Dataset: TDataSet; ListView: TListView); 
var 
LI : TListItem; 
CO : TListColumn; 
I : Integer; 
begin 
    // Setup the Columns 
    ListView.ViewStyle := vsReport; 
    ListView.Columns.Clear; 
    for I := 1 to DataSet.Fields.Count do 
    begin 
    CO := ListView.Columns.Add; 
    CO.Caption := Dataset.Fields.FieldByNumber(I).DisplayLabel; 
    Co.AutoSize := true; 
    end; 

    // Populate The Data 
    Dataset.First; 
    while not DataSet.EOF do 
    begin 
    LI := ListView.Items.Add; 
    LI.Caption := Dataset.Fields.FieldByNumber(1).AsString; 
    for I := 2 to DataSet.Fields.Count do 
    begin 
     LI.SubItems.Add(Dataset.Fields.FieldByNumber(I).AsString); 
    end; 
    DataSet.Next; 
    end; 
end; 
Questions connexes