grid多行选择问题急300分(200分)

  • 主题发起人 主题发起人 88888wwwww
  • 开始时间 开始时间
8

88888wwwww

Unregistered / Unconfirmed
GUEST, unregistred user!
grid可以象execl里的那样用鼠标拖拉选中几行删除
 
DBGridEH控件可以满足你的要求:多行、多列...
 
delphi自带的dbgrid/grid 没有此功能
我用infopower3000带的dbgrid实现过此功能
 
dgMultiSelect = True
 
这是说的不是按住ctrl键选而是用鼠标拖拉
 
是StringGrid 还是 dBGrid?
 
恐怕不太好实现。
要多选还可以,自己处理一下,MouseDown和MouseUp,
但有个问题,一点右键又变成一行了。
 
还有一点,拖动鼠标时,DbGrid 不滚动,多选有限。
 
同意xianguo 的,用DbGridEh,比DELPHI自带的好。
设dgMultiSelect=True
设dgRowSelect=True
并且拖动鼠标时DBGRIDEH跟着滚动。
 
同意用DBGRIDEH
 
我用DBGrid还没有实现过此功能!还是用DBGridEH!
 
DBGridEH好!!
 
dgMultiSelect = True
在选择时记录BookMark放在BookMarks中(用GetBookMark)
最后循环gotoBookMark并删除记录。
 
你要DBGridEH我可以发送一个给你。E-Mail:zhoulide@163.net
 
我也想用鼠标拖动选择多行, 如果只设置Dbgrid的option中的dgmultiselect属性为true
不能达到要求,怎么办??
 
dgMultiSelect = True
 
你查找一下幫助,還要確定你所選的記錄
 
sakawa 说得对。用他的方法可以实现你的需要因为我已经做过了。有时间我会给你代码
 
给你一个例子;
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;
抄来的
 

Similar threads

D
回复
0
查看
825
DelphiTeacher的专栏
D
D
回复
0
查看
831
DelphiTeacher的专栏
D
D
回复
0
查看
664
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部