现在界面有一DBGridEH,里面有很多数据,
我现在通过鼠标移动,用MouseCoord,可以获得当前DBGridEH的行(x)与列(y),我想实现的功能是:
功能1、不用点击DBGridEH的行,可以通过x,y将焦点定位在现在鼠标移动的行上。
功能2、如果x=?或y=? 我可以直接对当前DBGridEH的[x,y]进行赋值。
上述功能1与2解决方法,最好不要与DataSet关联,能在DBGridEH本身的属性上实现最好,谢了。在线等待,解决即给分

解决方案 »

  1.   

    大体思路讲下:
       首先,你是要设置焦点,VCL控件体系最终是要掉系统的Windows.SetFocus(hWnd: HWND)方法
    去设置焦点的,也就是说单元格不具有Handle属性,也就不能调用系统的API去设置焦点,这个时候
    方向就要转到讲鼠标位置移动到这个单元格,然后去模拟击中DBGridEH,这时焦点才会在此单元格上。//移动鼠标位置且按下鼠标可参考此方法,至于根据行,列算出鼠标要移动到的区域方法有很多,随便选个
      SetCursorPos   (Form1.Left+50,   Form1.Top+50); 
      mouse_event   (MOUSEEVENTF_LEFTDOWN,   0,0,0,0); 
      mouse_event   (MOUSEEVENTF_LEFTUP,   0,0,0,0);