请问在Delphi中,为什么点击stringgrid中的Button,它的click事件不被响应呢?

我在stringgrid中动态的加Button~代码如下:leftPos:=0;topPos:=0;fori:=0to9doleftPos:=leftPos+self.s... 我在stringgrid中动态的加Button~代码如下:
leftPos:= 0;
topPos := 0;
for i:= 0 to 9 do
leftPos:=leftPos+self.strngrdjhsz.ColWidths[i]+1;
for i:= 0 to ARow-1 do
topPos :=topPos+self.strngrdjhsz.RowHeights[i]+1;
btnaddJQ.Left := strngrdjhsz.Left+leftPos+2;
btnaddJQ.Top := strngrdjhsz.Top+topPos+2;
btnaddJQ.Width := strngrdjhsz.ColWidths[10]+1;
btnaddJQ.Height := strngrdjhsz.RowHeights[aRow];
btnaddJQ.Visible:= True;
运行的时候,点击某一行的单元格,在那一行的第10列式可以显示出来按钮的,但是点击那个按钮的时候不仅不会触发它的click事件,反而按钮消失了~
实在找不出原因,所以上来问问各位高手!谢谢!

按钮是已经创建好的,跟stringgrid在一个panel里面,运行时只是动态的移动它的位置。
button的click事件我已经写好了。但是就是不触发。
展开
 我来答
gatohell
2010-12-16 · TA获得超过402个赞
知道小有建树答主
回答量:329
采纳率:0%
帮助的人:303万
展开全部
按钮是你在运行时创建的么?需要设置按钮的parent属性,另外,需要事先写一个类似的
procedure ButtonClick(Sender: TObject);事件函数,并且把它赋值给你这个动态创建的按钮:

btnAddJQ.onclick := ButtonClick;
==============第二次回答===========
哦,这次看懂了。我做了个实验如下,没发现你说的问题啊
procedure TForm1.btnaddJQClick(Sender: TObject);
begin
ShowMessage('Hi!');
end;

procedure TForm1.strngrdjhszSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
var
leftPos, topPos, i: Integer;
begin
leftPos := 0;
topPos := 0;
for i := 0 to strngrdjhsz.ColCount - 1 do
leftPos := leftPos + self.strngrdjhsz.ColWidths[i] + 1;
for i := 0 to ARow - 1 do
topPos := topPos + self.strngrdjhsz.RowHeights[i] + 1;
btnaddJQ.Left := strngrdjhsz.Left + leftPos + 2;
btnaddJQ.Top := strngrdjhsz.Top + topPos + 2;
btnaddJQ.Width := strngrdjhsz.ColWidths[10] + 1;
btnaddJQ.Height := strngrdjhsz.RowHeights[ARow];
btnaddJQ.Visible := True;
end;
e熊u
2010-12-29 · TA获得超过198个赞
知道小有建树答主
回答量:150
采纳率:0%
帮助的人:71.8万
展开全部
btnaddJQ.BringToFront
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式