怎么在DBGRID里用SHIFT、CRTL??(100分)

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

ltqlyy125

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用SHIFT键来进行多选,但网格dbgrid不支持,求救!!!!!
 
用Ehlib最好,根本不用写代码,如果是DBGrid,就要写一点代码:
dbgrid1的dgMultiSelect属性设为true
private
blSelect: Boolean;
BookMark: TBookMark;

procedure TForm1.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var CurrNo: string;
begin
if Button = mbLeft then
if not blSelect then
begin
BookMark := qrTableModify.GetBookMark;
blSelect := True;
Exit;
end
else if ssShift in Shift then
begin
CurrNo := qrTableModify.FieldByName('sNo').AsString;//sNo为关键字段
qrTableModify.DisableControls;
qrTableModify.GotoBookmark(BookMark);
DBGrid1.SelectedRows.CurrentRowSelected := True;
if CurrNo > qrTableModify.FieldByName('sNo').AsString then
while CurrNo > qrTableModify.FieldByName('sNo').AsString do
begin
DBGrid1.SelectedRows.CurrentRowSelected := True;
qrTableModify.Next;
end
else
while CurrNo < qrTableModify.FieldByName('sNo').AsString do
begin
DBGrid1.SelectedRows.CurrentRowSelected := True;
qrTableModify.Prior;
end;
qrTableModify.EnableControls;
qrTableModify.FreeBookmark(BookMark);
blSelect := False;
end;
end;
 
假如没有按关键字排索引怎么办
 
第一次还可以选,第二次就死了,我用的是adotable,何故??
 
多人接受答案了。
 
后退
顶部