起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 227|回复: 7

【结贴】[问题]请问如何鼠标在数据网格上更换选择的行的事件是什么

[复制链接]
发表于 2010-5-19 12:02:52 | 显示全部楼层 |阅读模式
请问如何鼠标在数据网格上更换选择的行的事件是什么?
我需要捕捉到行改变的事件,但是如果根据列的改变来判断,在循环数据集的时候会触发。我想只获得鼠标的点击(选中)事件。请问有什么办法吗?
回复

使用道具 举报

发表于 2010-5-19 13:40:49 | 显示全部楼层
一般都是截获数据集的afterscroll事件来操作
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-5-20 10:22:53 | 显示全部楼层
这个afterscroll事件会在遍历数据集的时候被触发是吗?
我采用了数据网格的click事件来实现,但是希望能够得到改善。
回复 支持 反对

使用道具 举报

发表于 2010-5-20 10:49:26 | 显示全部楼层
这个afterscroll事件会在遍历数据集的时候被触发是吗?
会,这个就是记录滚动的时候触发的,这样的东东,你做个简单的例子一测试就知道了。

能说说你的原始需求吗?你改变行要触发不就是记录发生滚动触发吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-5-20 11:15:54 | 显示全部楼层
我不想触发记录滚动事件,所以就没有用这个办法。
我的需求是,当用户在数据网格上选择一行的时候,获取这行某个字段的值,触发这个字段的onchange事件,再进行一系列操作。
采用click事件已经实现。
但是感觉不太好。想改善一下。
采用了信息层字段的buttonclick事件,但是,信息层又不好调用表单的代码。觉得很苦恼。

我的原始需求就是,
用户点击数据网格上显示为button的字段,触发事件,弹出新窗口。
回复 支持 反对

使用道具 举报

发表于 2010-5-20 11:46:36 | 显示全部楼层
我的原始需求就是,
用户点击数据网格上显示为button的字段,触发事件,弹出新窗口。

这个有什么问题呢?是弹出窗口在信息中调用,对么?
如果此窗口 是在此信息下的,可以在信息中直接用。
信息中 类似于这样的代码:
var
  lTCCK : TCT;//此为弹出窗口
begin
  //
  lTCCK := TCT.Create(Context);
  try
  finally
  end;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-5-20 12:02:45 | 显示全部楼层
OK,结贴。我是试了一下,发现有些代码信息下和表单下不一样,所以很困惑,以为不能操作。我搜索了一下,论坛里面好像没有关于信息下代码的编写,比如赋值,过滤什么的,跟表单不一样。
回复 支持 反对

使用道具 举报

发表于 2010-5-20 17:21:14 | 显示全部楼层
最初由 liyuting730 发布
[B]我不想触发记录滚动事件,所以就没有用这个办法。
我的需求是,当用户在数据网格上选择一行的时候,获取这行某个字段的值,触发这个字段的onchange事件,再进行一系列操作..

以下省略...... [/B]

==============================
可以在DataGrid的OnMouseMove根据鼠标位置判断鼠标所在列【字段】,具体如下:
var
   i , lrow,lwidth : integer;

lwidth:= DataGrid.leftCoord;
for  i:=0  to DataGrid.columnCount-1 do
begin
   if DataGrid.columns.Visible= true then
    lwidth:=  lwidth + DataGrid.columns.width+(i+1)*DataGrid.RowSeparatorLineWidth;//循环增加列判断鼠标所在列数
  if (x>lwidth - DataGrid.columns.width) and(x<= lwidth) then
  begin
      lrow:= i;//字段列数
      break;
  end;
end;
如上DataGrid.columns[lrow].FileName 即为要获取的字段名。
//如果想获取行数
可以循环数据集,通过增加行高来判断所在行。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-8 17:01 , Processed in 0.043942 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表