DBGRID多行已选定,怎么将选定的值取出来!急!(20分)

  • 主题发起人 主题发起人 易名烦
  • 开始时间 开始时间

易名烦

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,请指教!
 
if DBGrid.SelectedRows.Count > 0 then
for i := 0 to DBGrid.SelectedRows.Count - 1 do
begin
GotoBookMark(Pointer(DBGrid.SelectedRows.Items));
for j := 0 to FieldsCount - 1 do begin
if DBGrid.Columns[j].Field.DataType <> ftString then
Num[j + 1] :=IntToStr(DBGrid.Columns[j].Field.Value)
else
str[ j + 1] := DBGrid.Columns[j].Field.Value;
end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
i, j: Integer;
s: string;
begin
if DBGrid1.SelectedRows.Count>0 then
with DBGrid1.DataSource.DataSet do
for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin
GotoBookmark(pointer(DBGrid1.SelectedRows.Items));
for j := 0 to FieldCount-1 do
begin

if (j>0) then s:=s+', ';
s:=s+Fields[j].AsString;
end;
Listbox1.Items.Add(s);
s:= '';
end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
for i:=0 to DBGrid1.SelectedRows.Count -1 do begin
DBGrid1.DataSource.DataSet.GotoBookmark (
Tbookmark(DBGrid1.SelectedRows));
listbox1.Items.Add (
DBGrid1.DataSource.DataSet.FieldByName('CustNo').AsString);
end;
end;
 
linsb:
您写的好象没有涉及跳行,只是在哪里循环了多次,操作的是同一行,对吧?
 
对不起,丢掉了一行,已加上,见贴。
 
procedure TForm1.DBGrid1ColEnter(Sender: TObject);
begin
if DBGrid1.SelectedField<> nil then
Edit1.Text:=DBGrid1.SelectedField.AsString;
end;

procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
if DataSource1.State=dsBrowse then
DBGrid1ColEnter(Sender);
end;
 
对不住啦!
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
931
SUNSTONE的Delphi笔记
S
S
回复
0
查看
844
SUNSTONE的Delphi笔记
S
S
回复
0
查看
824
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部