procedure TForm1.FormCreate(Sender: TObject);
beginCLOSE;end;end;
上面的CLOSE不能关闭窗体,为什么,TForm1。HIDE也不能隐藏窗体,,谢谢各们大哥了。。

解决方案 »

  1.   

    因为你把代码放在Form的Create当中,在Form创建的时候对其进行关闭、隐藏的操作,从逻辑上还是语法上都是不允许的。
      

  2.   

    close 不能发放在oncreate事件中
    oncreate事件是窗体创建时执行的
    可以建一个按钮,在按钮的onclick事件中加入close来关闭窗体
      

  3.   

    建议把close时间放在一个buttonclick事件中。放在formcreate里面是肯定不行的procedure TForm1.button1Click(Sender: TObject); 
    begin 
    CLOSE; 
    end; 
      

  4.   

    放在OnShow事件中进行Close或Hide
      

  5.   

    (*我猜测,楼主的目的是这样的:只有一个窗体(也就是MainForm),但想在程序运行时就隐藏。可以这样:
    *)procedure TForm1.FormCreate(Sender: TObject);
    begin
      Application.ShowMainForm := False;
    end;
      

  6.   

    (*续上:下面是一个例子:程序运行后,主窗体不显示;并可以通过热键Ctrl+Alt+F9调出主窗体。*)unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, AppEvnts;type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
        procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
      private
        { Private declarations }
      public
        { Public declarations }
        ID : integer;
        procedure WMHotKeyHandle(var Msg: TWMHotKey); message WM_HotKey;
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
      { 注册 Ctrl + Alt + F9 组合热键 }
      if FindAtom('LihuaSoftHotKey') = 0 then
         begin
         ID := GlobalAddAtom(PAnsiChar('LihuaSoftHotKey'))-$C000;
         RegisterHotkey(Handle,ID,MOD_Control or mod_Alt,VK_F9);
         end;
      Application.ShowMainForm := False;
    end;procedure TForm1.WMHotKeyHandle(var Msg: TWMHotKey);
    begin
      Msg.Result:=1;
      if Msg.HotKey = ID then Application.MainForm.Show;
    end;procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
      if ID <> 0 then begin
        UnregisterHotKey(Handle,ID);
        DeleteAtom(ID);
      end;
    end;end.
      

  7.   

    (*我猜测,楼主的目的是这样的:只有一个窗体(也就是MainForm),但想在程序运行时就隐藏。可以这样:
    *)procedure TForm1.FormCreate(Sender: TObject);
    begin
      Application.ShowMainForm := False;
    end;不是这是,是程序运行时.如果不是在我定义的目录运行的,就关闭程序,谢谢大家了
      

  8.   

    放在OnShow事件中进行Close或Hide这个方法不错,还有没有其它的
      

  9.   


    晕....那如果想关闭程序,直接Application.Terminate不就可以了?
      

  10.   

    不能放到CLOSE事件里。应当放到SHOW事件里的。