怎样判断 Shift键是否按下 设form的keypriview为true,在form的onkeydown里写:...if (ssShift in shift) thenbegin...end;... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我想写一个只要按下Shift按可以让DBGrid连续多选,请问在那里写才好呢? 设置DBGrid的Options.dgMultiSelect属性为True即可。 这样只能一条一条的选,不能像windows那样按下shift键可以边选 呵呵,就这样(设置form1.keypriview:=true):procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin if (ssShift in shift) then begin dbgrid1.Options:=dbgrid1.Options+[dgMultiSelect]; end;end; 我不是想要这样的效果,这样直接改字有属性就可以了,我想要的是像WINDOS那样按下SHIFT键可以边选,如:当我选了第一条纪录后,再按下SHIFT键,再在第10条纪录上按一下就可以把第一到第十条纪录都选上 我写过,你先仔细观察一下,DBGrid虽然不能象Windows那样,但是只要你按下Shift键后,再按Up或Down键,它就可以实现多选,这就有办法了,先设一个全局变量i,初始为-1,在DBGrid的CellClick事件中,先取DBGrid所对应的DataSet的RecNo,将它赋予一个变量j,再判断Shift是否按下了(用GetKeyState),如果按下了,再用keybd_event来模拟键盘事件,如果j>i则用VK_UP,反则用VK_DWON,注意,keybd_event要成对使用,一个按下事件,一个放开事件,如此重复abs(j-i)次.最后记得还要将j值赋予i prometheusphinx(白日梦)的办法可以 用if (ssShift in shift) then来判断啦, prometheusphinx(白日梦) 能否给个例子看看吗?[email protected] 这是个什么错误Unable to expand? DBGRID的小问题,在线等呀! 有关MID窗体的问题(2) 请问毛玻璃效果怎么实现? 真是麻烦的问题。。。 VCL不见了!!! 用blockread读文件,返回定长数组可以,为什么动态数组不行,如何解决 怎样动态改变Dbgrid的options属性中的dgRowSelect的值 Delphi如何处理SMTP的密码? 我的delphi无法安装控件? 一个关于dbgrid的简单问题,大家快来拿分,80分送上! 请教一个文件流的问题?马上送分!
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (ssShift in shift) then
begin
dbgrid1.Options:=dbgrid1.Options+[dgMultiSelect];
end;
end;
[email protected]