怎样使DBGrid可以用Shift或者Ctrl进行多选?(100分)

  • 主题发起人 主题发起人 delphi?
  • 开始时间 开始时间
D

delphi?

Unregistered / Unconfirmed
GUEST, unregistred user!
多选进行复制粘贴!
 
在DBGrid的Options中有dgMultiSelect属性,如果置为True就可以多选择了,当然是Ctrl按下的
时候
 
这个我知道!
但是我主要要实现的是Shift,而且Ctrl进行多选也不是太好的,不能多项进行同时copy 或者cut!
 
你可以试一下在DBGrid中的Options属性中dgMultiSelect设置为True
或者DBGrid1.Options:=[dgmultiselect];看一下可不可以
如果还不可以可以跟我发邮件:wjh107@sina.com
Ok!!!


 
procedure Tlemp_rbbf.DBGrid_empCellClick(Column: TColumn);
var
zgbh_now:string;
dowhile:boolean;
begin
If (integer(GetKeyState(VK_SHIFT))and integer($80))<>0 Then
begin
dowhile:=true;
zgbh_now:=DBGrid_emp.Columns.Items[0].Field.asstring;
Cds_emp_kqxx.DisableControls;
Cds_emp_kqxx.GotoBookmark(bookmark);
while dowhile do
begin
TBookmarklist(DBGrid_emp.SelectedRows).CurrentRowSelected := true;
if strtoint(Cds_emp_kqxx.fieldbyname('zgbh').asstring)>strtoint(zgbh_now) then
Cds_emp_kqxx.Prior;
if strtoint(Cds_emp_kqxx.fieldbyname('zgbh').asstring)=strtoint(zgbh_now) then
dowhile:=false;
if strtoint(Cds_emp_kqxx.fieldbyname('zgbh').asstring)<strtoint(zgbh_now) then
Cds_emp_kqxx.next;
end;
Cds_emp_kqxx.EnableControls;
end
else
bookmark:=Cds_emp_kqxx.GetBookmark;//shift多选时的开始
end;
这是我以前自己写的shift多选,看看,或许对你有帮助,好运!!
 
dgMultiSelect肯定要true哟
 
zhousi你的程序里面Cds_emp_kqxx是什么?
 
Cds_emp_kqxx应该是数据集组件吧!
 
我急啊!
有人能给我说清楚么?
 
不对啊!
调试通过,不能运行啊!
 
还是不行啊!
 
to delphi?
Cds_emp_kqxx是连接你需要多选的dbgird的数据集,与table类似
 
使用EHLIB25控件就行
 
后退
顶部