如何实现DBGrid的多行选择的反选功能?(50分)

  • 主题发起人 主题发起人 weblogic_li
  • 开始时间 开始时间
W

weblogic_li

Unregistered / Unconfirmed
GUEST, unregistred user!
例如DBGrid有10条数据,选中其中的部分数据后,可以通过代码让选中的和未被选中的
数据互相的调换位置,也就是反向选择???
谢谢
 
多行选择是怎样实现的!
我说的是用鼠标直接选取就象在windows下一样!
 
和没说一样啊,你怎么控制,选中了,如何反选
 
adotable1.First;
while not adotable1.Eof do
begin
dbgrid1.SelectedRows.CurrentRowSelected:=not dbgrid1.SelectedRows.CurrentRowSelected;
adotable1.Next;
end;
 
换个控件吧。用StringGrid吧。你那个换位置用DBGrid虽说可以处理,但我认为有
效益不高问题
 
我做的一个系统中这么做的,有几百条记录的情况下,没有明显的延迟:
procedure TfrmCTI.BitBtn3Click(Sender: TObject);
var
tempPos: integer;
begin
With dbgDW do begin
tempPos := DataSource.DataSet.RecNo - 1;
DataSource.DataSet.DisableControls;
DataSource.DataSet.First;
while not DataSource.DataSet.Eof do begin
SelectedRows.CurrentRowSelected := not SelectedRows.CurrentRowSelected;
DataSource.DataSet.Next;
end;
DataSource.DataSet.First;
DataSource.DataSet.MoveBy(tempPos);
DataSource.DataSet.EnableControls;
LabelCount.Caption := '共选中:'+inttostr(SelectedRows.Count)+'户';
end;
end;
 
多人接受答案了。
 
后退
顶部