前几天好象有人问过这样的问题,你可以搜索一下! 思路是: var MyList:TStrings; begin DBGrid1.DataSource.DataSet.GotoBook(pointer(DBGrid1.SelectedRows.Items[i])) ; //定位 ListView1.Items.Add.Caption:=DBGrid1.DataSource.DataSet.Fields[0].asstring; MyList:=TStringList.Create; fpr i:=1 to DBGrid1.DataSource.DataSet.FieldCount-1 do begin MyList.add(DBGrid1.DataSource.DataSet.Fields[1].asstring;) ........ end; ListView1.Items.Add.SubItems:=MyList;
没那么麻烦吧,试试这样,加在dbgrid的oncellclick里 procedure TForm1.DBGrid1CellClick(Column: TColumn); begin listbox1.Items.Add(Column.Field.AsString); end;
不好意思!上面的代码有些问题! 应该是: var i,j:integer; MyItems: array of TListItem; begin SetLength(MyItems,DBGrid1.SelectedRows.Count-1); for i:=0 to DBGrid1.SelectedRows.Count-1 do begin DBGrid1.DataSource.DataSet.GotoBook(pointer (DBGrid1.SelectedRows.Items[i])) ; //定位 MyItems[i]:=ListView1.Items.Add; MyItems[i].Caption :=DBGrid1.DataSource.DataSet.Fields[0].asstring ; for j:=1 to DBGrid1.DataSource.DataSet.FieldCount-1 do MyItems[i].SubItems.add(DBGrid1.DataSource.DataSet.Fields[j].asstring;) end; end;
通过 dbgrid..datasource.dataset.fieldbyname()
2.调用listview的additem方法
思路是:
var MyList:TStrings;
begin
DBGrid1.DataSource.DataSet.GotoBook(pointer(DBGrid1.SelectedRows.Items[i])) ; //定位
ListView1.Items.Add.Caption:=DBGrid1.DataSource.DataSet.Fields[0].asstring;
MyList:=TStringList.Create;
fpr i:=1 to DBGrid1.DataSource.DataSet.FieldCount-1 do
begin
MyList.add(DBGrid1.DataSource.DataSet.Fields[1].asstring;)
........ end;
ListView1.Items.Add.SubItems:=MyList;
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
listbox1.Items.Add(Column.Field.AsString);
end;
应该是:
var
i,j:integer;
MyItems: array of TListItem;
begin
SetLength(MyItems,DBGrid1.SelectedRows.Count-1);
for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin
DBGrid1.DataSource.DataSet.GotoBook(pointer (DBGrid1.SelectedRows.Items[i])) ; //定位
MyItems[i]:=ListView1.Items.Add;
MyItems[i].Caption :=DBGrid1.DataSource.DataSet.Fields[0].asstring ;
for j:=1 to DBGrid1.DataSource.DataSet.FieldCount-1 do
MyItems[i].SubItems.add(DBGrid1.DataSource.DataSet.Fields[j].asstring;)
end;
end;