不用按住 CTRL 键只须用鼠标点击DBGRID中的记录就可以选中多行记录请大高手帮一帮我问题解决高分回报!!!
解决方案 »
- left side ot be assigned to? !!!
- 关于汉字生成拼音的的函数
- //----------------IdFtp获取服务器文件Size的问题--------------------//
- 放分,顺便大家讨论一下C/S与B/S结构的发展趋势
- 抢分问题,先到先得
- 心情极其不好,逃课来网吧!
- 急!!!高手请进!怎么监控FTP Server中上传/下载的文件?
- 请教问题
- 如何实现在DBGrid(连接Table1的)中某一列的编辑区连接另外一表Table2的'Name'字段,点击下拉菜单就可实现?
- 类方法,类中类,请大家进来探讨
- 哪位知道Delphi7.0的全部函数,过程下载!
- 令人头疼的问题?请各位大侠帮帮忙啊!(在线等待)
procedure TForm1.SelectClick(Sender: TObject);
var
x: word;
TempBook: TBookMark;
begin
DBGrid1.Datasource.Dataset.DisableControls;
with DBgrid1.SelectedRows do
if Count > 0 then
begin
TempBook:= DBGrid1.Datasource.Dataset.GetBook;
for x:= 0 to Count - 1 do
begin
if IndexOf(Items[x]) > -1 then
begin
DBGrid1.Datasource.Dataset.Book:= Items[x];
showmessage(DBGrid1.Datasource.Dataset.Fields[1].AsString); //这里得到数据
end;
end;
end;
DBGrid1.Datasource.Dataset.GotoBook(TempBook);
DBGrid1.Datasource.Dataset.FreeBook(TempBook);
DBGrid1.Datasource.Dataset.EnableControls;
end;
-----------------------------------------
你们试验过吗????
不按CTRL能多选吗???
请不要误导他人!
将GRID 连接的数据集中添加一个标志字段FLAG,
并且连接UPDATESQL ,双击GRID的某行就将FLAG置为Y ,这样选择好后所有为Y的表示选种。。这样比较直观,,而且选错了可以取消其中一条。
应该是设置一个chexkbox多选/单选 按钮,用鼠标点一下就是选择,可以选择多行,在相同选择纪录上再点一下就是取消。
目前我还不知道代码如何写!只能按ctrl,或鼠标画框想到思路如下:
因该是在dbgrid的onclick事件中判断鼠标,设置一个数组变量,记录recno,判断数组里有无该纪录的recno,然后处理选择显示
然后再加一个复选框:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if checkbox1.Checked then
keybd_event(VK_CONTROL,0,0,0)
else
keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);
end;
在DELPHI 的 Standard 加入chekbox ,双击checkbox 加入如下代码if checkbox1.Checked
then
keybd_event(VK_CONTROL,0,0,0)
else
keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);
end;
options->dgMultiSelect的属性设为true