注册 登录
编程论坛 Delphi论坛

dbgrid双击事件 为什么要双击2次才能打开窗口?

guang2356447 发布于 2007-11-03 23:53, 2488 次点击

procedure Tylb.DBGrid1DblClick(Sender: TObject);
begin //dbgrid双击事件是ondblclick
if adoquery1.Eof then exit;
if Not assigned(wcl) then
begin
Application.CreateForm(Twcl,wcl);
end
else
begin
wcl.show;
end;
wcl.label1.caption:=adoquery1.FieldValues['kh_tsfs'];
wcl.label2.caption:=adoquery1.FieldValues['kh_tsdw'];
wcl.label6.caption:=adoquery1.FieldValues['kh_tsyy'];
end;

4 回复
#2
xu20002007-11-04 22:47
第一次是建立,第二次才显示,当然要两次才能显示出来。

if adoquery1.Eof then exit;
if Not assigned(wcl) then
begin
Application.CreateForm(Twcl,wcl);
wcl.show;
end;
#3
guang23564472007-11-04 23:26
if Not assigned(wcl) then
begin
Application.CreateForm(Twcl,wcl);
wcl.show;
end
else
begin
wcl.Show;
end;

谢谢 xu2000
这个是打开这个窗口后 如果不关闭的情况下 再双击改事件就打开已经运行的窗口 呵呵 表达的不好 嘿嘿
可以拉
#4
volte2007-11-05 09:11
楼主这么粗心啊!哈哈
为什么要加上else begin end;

直接没申明窗体类情况下则创建。
wcl.show是必须执行的。

还有我想既然是dbgriddbclick事件,
一般情况下弹出子窗体或者showmodal窗体比较好!
纯属个人意见,

使用全局对象构建窗体用在这里不是太好!
#5
论坛元老2008-04-02 18:13
帮不上忙,I'SORRY.....
1