就是在dbgrid 中 按shift 键 选中所有在单击的第一条和单击的最后一条记录中间的所有记录,应该怎么写啊 ?
解决方案 »
- DBGrid 显示不出内容
- 请教各位,用定时器定时刷新数据库一个表,程序会假死很慢的现象,不知怎样解决,谢谢
- pagecontrol与tabsheet标签上的imageindex显示小问题?高手进,在线等.......
- 高手救命啊在QReport中怎么做主从报表啊
- 哪位大哥有Delphi写的系统优化的例子?
- 能不能这么用,大家帮个忙,进来看看
- 请问如何在delphi开发的程序中模拟windows图标
- 在不知道用户是什么操作系统,装在什么盘的情况下,我想用代码,打开计事本,并打开指定的文本文件?
- 怎么把一个VCL 删除掉,我装了 flatstyle_D5 现在要装 flatstyle 2000 怎么把原来那个去掉?
- 请问在dbgrid中如何才能得到当前行焦点改变的事件?
- 这是为什么我做的MIS系统为什么程序退出总是出现这个对话框??
- 求把自己编写的unit编译成DLL的问题
Shift: TShiftState);
begin
FKeyShift := ssShift in Shift;
end;procedure TForm1.DBGrid1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
FKeyShift := False;
end;procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
FOldNo := FRecNo;
FRecNo := TDataSource(Sender).DataSet.RecNo;
if FKeyShift then DBGrid1.SelectedRows.CurrentRowSelected := True;
FKeyShift := False;
end;procedure TForm1.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
I: Integer;
begin
if FKeyShift then begin
if -1 in [FOldNo, FRecNo] then Exit;
if FRecNo > FOldNo then
for I := FRecNo downto FOldNo do begin
TDBGrid(Sender).DataSource.DataSet.RecNo := I;
TDBGrid(Sender).SelectedRows.CurrentRowSelected := True;
end
else
for I := FRecNo to FOldNo do begin
TDBGrid(Sender).DataSource.DataSet.RecNo := I;
TDBGrid(Sender).SelectedRows.CurrentRowSelected := True;
end;
end;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
FRecNo := -1;
end;
要用ADO
{ Private declarations }
FKeyShift: Boolean;
FRecNo: Integer;
FOldNo: Integer;