关于grid的selectedrows的问题?(100分)

  • 主题发起人 主题发起人 lee3star
  • 开始时间 开始时间
L

lee3star

Unregistered / Unconfirmed
GUEST, unregistred user!
我想对grid中的选种的多行记录操作,不知如何读取数据。比如说,
我要把我选种的记录中的第2条记录值显示出来,如何编程。谢谢!
 
察看已答问题.
 
选中的第二条记录:
stringgrid.selection.Top + 1;
 
双击options属性
把multiselect子属性设为true.
 
对不起,我说的是dbgrid,不是stringgrid。而且我知道如何选种多行,
我只是不知道如何把我选种的多行中的某行的记录值显示出来,或加以
计算。举个例子吧:我想把我选种的所有行的某字段的值的和显示出来,
能解决吗?谢谢!最好有语句表达!
 
先要移动到第二条选中的记录然后才能读取数据库数据
table1.gotobookmark(pchar(dbgrid.selectedrows.items[1]));
 

GotoBookmark(pointer(DBGrid1.SelectedRows.Items[2]));
for j := 0 to FieldCount-1do
begin
if (j>0) then
s:=s+', ';
s:=s+Fields[j].AsString;
end;
 
应该可以用selectedrows.items[2]来定位哪个记录.
var
bstr:TBookmarkStr;
if dbgrid1.selectedrows.count>=2 then
bstr:=dbgrid1.selectedrows.items[2];
with table1do

begin
bookmark:=bstr;
showmessage(fieldbyname('id').asstring);
end;

 

procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
BookmarkList: TBookmarkList;
Bookmark: TBookmark;
begin
Bookmark := Table1.GetBookmark;
try
ListBox1.Items.Clear;
BookmarkList := DbGrid1.SelectedRows;
for I := 0 to BookmarkList.Count - 1do
begin
Table1.GotoBookmark (Pointer (BookmarkList ));
ListBox1.Items.Add (Table1.FieldByName (
'Name').AsString);
end;
finally
Table1.GotoBookmark (Bookmark);
Table1.FreeBookmark (Bookmark);
end;
end;

end.
 
多人接受答案了。
 
后退
顶部