我写了一个APPLICATION,在它的ONCREATE里面调用另一个登陆FORM ,如果FLOGIN中点取消则关闭FLOGIN,并且关闭主界面FSYS_ORDER
代码如下
procedure Tfsys_order.FormCreate(Sender: TObject);
var
   flogin:tflogin;
begin
    flogin:=tflogin.create(self);
    flogin.ShowModal;
   //出错的地方end;//这是主界面的ONCREATEprocedure Tflogin.Button2Click(Sender: TObject);
begin
  ModalResult:=mrAll;
  flogin.Close;
  fsys_order.close;
  
end; 调试通过但运行的时候点取消的时候报错,我不知道是什么原因,点确定我写的另一个很长的过程没问题,但这么个简单的地方去怎么也过不去不知道是什么原因请大家看看!

解决方案 »

  1.   

    不是这样写代码的阿!你showmodal是show出一个登陆的是嘛?那你就要if showmodal<>IDOK then exit就行了用不着这么麻烦阿!!
      

  2.   

    楼上的几位能否祥解,我洗耳恭听,说详细点好不好,我现在在写一个小东西用的饿比较急DELPHI以前用的也不多,所以这些细微的地方总是不了解。谢了! johnmack(爱若琴弦) 四星,我就跟定你了,flogin:=tflogin.create(Application);是通过LOGIN来CREATE APPLICATION?
      

  3.   

    另外能说说MODALREDULT是干什么用的吗!更感激你们!!!谢谢!!!!
      

  4.   

    再请高手们推荐几本真用的DELPHI方面的着的书,不要就是讲什么控件怎么放怎么连接的,这些我自己摆摆就知道了,干这个的没有傻子,处我笨一些外,要讲到比较细的地方的书。OK?再谢~~~~~
      

  5.   

    delphi经典书籍:
    delphi5开发人员指南,1300多页,RMB 138,我很早就买了,都翻烂了
    www.pcbookcn.com有电子版下载给modalresult付一个非零值就能关闭窗体并返回一个结果,用于判断用户按了哪个键
    祥见delphi在线帮助
      

  6.   

    procedure Tfsys_order.FormCreate(Sender: TObject);
    var
       flogin:tflogin;
    begin
        flogin:=tflogin.create(Application);
        flogin.ShowModal;
       if flogin.MODALREDULT<>mrok then
         fsys_order.close
       else
       其它;
    end;//这是主界面的ONCREATE
      

  7.   


    procedure Tfsys_order.FormCreate(Sender: TObject);
    var
       flogin:tflogin;
    begin
        flogin.Button2.ModalResult = mrOK;
        flogin:=tflogin.create(self);
        if flogin.ShowModal() = mrOK then
           fsys_order.close;end;//这是主界面的ONCREATEprocedure Tflogin.Button2Click(Sender: TObject);
    begin
    //  flogin.Close;
    //  fsys_order.close;
    end;
      

  8.   

    嘿嘿这个问题我自己摸着解决了哈哈,其实不用那么复杂,我是想在LOGIN上当点取消的时候登陆窗口关闭的同时关闭整个程序其实一句就搞定
    application.terminate;
    也用不上什么MODALRESULT,这个我现在还是不懂!我现在写的是别人写的东西要我改,写的人也是个半路出家的连点注释都没有我靠!!!还不如我重写!
      

  9.   

    flogin.ShowModal;
    这句话写在FORM的ONSHOW 事件里就不会报错