得到字段应该用SelectedField属性,SelectedRows是选择的行-----有待研究

loop := 0;
while loop <= DBGD.SelectedRows.Count - 1 do
begin
DBGD.DataSource.DataSet.Bookmark := DBGD.SelectedRows.Items[sloop];
sBookMark := DBGD.DataSource.DataSet.GetBookmark;
DBGD.DataSource.DataSet.GotoBookmark(sBookMark);
sPH := DBGD.DataSource.DataSet.FieldByName('PH').AsString;
Print; DBGD.DataSource.DataSet.FreeBookmark(sBookMark);
inc(loop);
end;
我刚才试了一下楼主的代码可以正常运行。
偶用的ADOQuery,dbgrid的Options属性dgRowSelect和dgMultiSelect设置为true。

procedure TForm2.Button1Click(Sender: TObject);
var
i:integer;
bookmarklist:tbookmarklist;
bookmark:tbookmarkstr;
begin
bookmark:=ADOtable1.Bookmark;
try
listbox1.Clear;
bookmarklist:=tbookmarklist.Create(nil);
bookmarklist:=dbgrid1.SelectedRows;
for i:=0 to bookmarklist.Count-1 do
begin
showmessage(bookmarklist[i]);
ADOtable1.Bookmark:=bookmarklist[i];
listbox1.Items.Add(ADOtable1.fieldbyname( 'aa ').AsString);
end;
finally
ADOtable1.bookmark:=bookmark;
end;
end;

 

官方例子:
procedure TForm1.btnDoSumClick(Sender: TObject);
var
i: Integer;
sum : Single;
begin
if DBGrid1.SelectedRows.Count > 0 then
begin
sum := 0;
with DBGrid1.DataSource.DataSet do
begin
for i := 0 to DBGrid1.SelectedRows.Count-1 do
begin
GotoBookmark(Pointer(DBGrid1.SelectedRows.Items[i]));
sum:= sum + AdoQuery1.FieldByName('Size').AsFloat;
end;
end;
edSizeSum.Text := FloatToStr(sum);
end
end;

 

for   i:=0   to   DBGrid1.SelectedRows.Count-1   do
begin
adoquery.GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
memo1.lines.add(adoquery.fieldbyname( '字段 ').asstring);
end;

 

for i:=0 to DBGridEhList.SelectedRows.Count do
begin
pDS.GotoBookmark(Pointer(DBGridEhList.SelectedRows.Items[i]));
pDS.Edit();
pDS.FieldByName('Password').Value='123';
pDS.Post();
end;

 

我自己的代码:

删除阴影行:
procedure TfrmMain.N27Click(Sender: TObject);
var
I: Integer;
begin
for I := 0 to WeiTopTradeShow_dbgeh.SelectedRows.Count-1 do
begin
frmClientDm.WeiPrintTopTradeShow_adoq.GotoBookmark(pointer(WeiTopTradeShow_dbgeh.SelectedRows.Items[I]));
//showmessage(frmClientDm.WeiPrintTopTradeShow_adoq.FieldByName('top_xuanzhong').AsString);
//frmClientDm.WeiPrintTopTradeShow_adoq.Edit;
//frmClientDm.WeiPrintTopTradeShow_adoq.FieldByName('top_xuanzhong').AsBoolean := False;
frmClientDm.WeiPrintTopTradeShow_adoq.Delete;
end;
end;

 

选中阴影行:
procedure TfrmMain.N19Click(Sender: TObject);
var
I: Integer;
begin
// //ShowMessage(IntToStr(WeiTopTradeShow_dbgeh.SelectedRows.Count));
for I := 0 to WeiTopTradeShow_dbgeh.SelectedRows.Count-1 do
begin
frmClientDm.WeiPrintTopTradeShow_adoq.GotoBookmark(pointer(WeiTopTradeShow_dbgeh.SelectedRows.Items[I]));
//showmessage(frmClientDm.WeiPrintTopTradeShow_adoq.FieldByName('top_xuanzhong').AsString);
frmClientDm.WeiPrintTopTradeShow_adoq.Edit;
frmClientDm.WeiPrintTopTradeShow_adoq.FieldByName('top_xuanzhong').AsBoolean := True;
frmClientDm.WeiPrintTopTradeShow_adoq.Post;
end;
// for I := 0 to WeiTopTradeShow_dbgeh.SelectedRows.Count-1 do
// begin
// frmClientDm.WeiPrintTopTradeShow_adoq.Edit;
// frmClientDm.WeiPrintTopTradeShow_adoq.FieldByName('top_xuanzhong').AsBoolean := True;
// frmClientDm.WeiPrintTopTradeShow_adoq.Post;
// end;
end;

 

 









posted on 2012-02-19 00:43  del88  阅读(13)  评论(0编辑  收藏  举报