菜单(N6) 单击事件。
procedure Tfquqlity.n6click(sender:Tobject);
begin
if (not assigned(fdiscard)) then 
begin
fdiscard:=Tfdiscard.Create(Application);
 with Tfdiscard.Crete(self) do 
begin
 parent:=fquality;
left:=1;
top:=0;
show;
end;
end
else
begin
fdiscard.free;
fdiscard:=nil;
end;
end;
end.
现象:要单击两次才能出现Fdiscard 窗体。为什么?
谢谢!

解决方案 »

  1.   

    with Tfdiscard.Crete(self) do  改成:with fdiscard do  
      

  2.   

    同意一楼的说法。用了两次creat啦
      

  3.   

    zhangl_cn兄讲的肯定是一个问题,一定要改掉,否则会有内存泄漏。
    你这个问题可能是程序开始启动时已经自动创建了一个fdiscard窗体,所以下面的判断为false:
    if (not assigned(fdiscard)) then
    在菜单project->Options里的forms页中把fdiscard从atuo-create froms中去掉即可
      

  4.   

    NightCloud兄讲得有道理,我没想到这一点,呵呵,应该就是这个问题了,系统已经自动创建了一个,被楼主Free掉了,第一次点击当然不会出现窗体,再点击则再次创建并显示出来.