难题:得到DBGridEH(DBGrid)某个单元格的Rect,并在其中触发事件弹出窗体??? ( 积分: 200 )

  • 主题发起人 主题发起人 happycyp
  • 开始时间 开始时间
H

happycyp

Unregistered / Unconfirmed
GUEST, unregistred user!
我要的效果:
在一个DBGrid中的一列的单元格中,输入东东的时候,就弹出一个面板(用窗体制作),要求弹出菜单的位置效果差不多,即面板要在单无格的边线周围弹出,一般是单元格的左下角的坐标,即面板右上角的从标。我现在采取的方法是取其Rect,对Edit控件弹出面板时很好用)。

请教各位朋友,如何实现获得这个单无格的Rect,或者有其他解决办法控制面板的显示位置也可。
另外,如何在单元格有键按下时,去弹出这个面板窗体?

献上200分,不成敬意,解决后,分可以再加。
 
dbgrideh中用过。不知道dbgrid中行不行。
首先声明一个公共变量: Rect: TRect;
在onColEnter事件中写:
with dbgrideh1 do
if col=1 then
begin
n:=Row;
Rect:=CellRect(1, n);
end;

在dbgrideh1的onKeypress事件中写控制面板弹出事件并根据Rect的top,left来控制控制面板位置,我倾向于用panel代替弹出窗体。
 
用panel会引起其他控件的位置的移动。因为我的弹出窗体还要针对Edit控件。

雾锁长河兄,你是怎么根据得到CellRect,控制弹出的面板的位置的,请将代码贴出来,谢谢
 
调试发现你上面传入的Rect的TopLeft是[0,0]。
你是怎么把这个Rect传递给弹出窗体的?
 
to happycyp,

with dbgrideh1 do
begin
....
Rect:=CellRect(1, n);
....
end;

上面的代码CellRect貌似DBGridEh1的一个子方法而已。
 
感谢雾锁长河
搞定了,用到了你给的Col和Row方法。
with DBGridEH1 do
R := CellRect(Col,Row);
 
多人接受答案了。
 
后退
顶部