close 不能发放在oncreate事件中 oncreate事件是窗体创建时执行的 可以建一个按钮,在按钮的onclick事件中加入close来关闭窗体
建议把close时间放在一个buttonclick事件中。放在formcreate里面是肯定不行的procedure TForm1.button1Click(Sender: TObject); begin CLOSE; end;
放在OnShow事件中进行Close或Hide
(*我猜测,楼主的目的是这样的:只有一个窗体(也就是MainForm),但想在程序运行时就隐藏。可以这样: *)procedure TForm1.FormCreate(Sender: TObject); begin Application.ShowMainForm := False; end;
(*续上:下面是一个例子:程序运行后,主窗体不显示;并可以通过热键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.
(*我猜测,楼主的目的是这样的:只有一个窗体(也就是MainForm),但想在程序运行时就隐藏。可以这样: *)procedure TForm1.FormCreate(Sender: TObject); begin Application.ShowMainForm := False; end;不是这是,是程序运行时.如果不是在我定义的目录运行的,就关闭程序,谢谢大家了
oncreate事件是窗体创建时执行的
可以建一个按钮,在按钮的onclick事件中加入close来关闭窗体
begin
CLOSE;
end;
*)procedure TForm1.FormCreate(Sender: TObject);
begin
Application.ShowMainForm := False;
end;
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.
*)procedure TForm1.FormCreate(Sender: TObject);
begin
Application.ShowMainForm := False;
end;不是这是,是程序运行时.如果不是在我定义的目录运行的,就关闭程序,谢谢大家了
晕....那如果想关闭程序,直接Application.Terminate不就可以了?