怎么让自动运行的窗体不闪一下才关闭?

joanagle 2010-05-20 09:57:53
我有个程序,每天开机都会自动运行,但只是指定某些天才需要执行它,其他时间不执行此程序。
现在这些都实现了,但是每天自动运行时都会闪一下才不见,领导希望连闪都不要闪,大家有什么好的解决办法没?

我先说说我的代码;
g_NowDate := DateToStr(Date());
s_Day := StrToInt(Copy(g_NowDate, 9, 2));
if s_Day in [10..15] then
Button1Click(nil)
else
FrmMain.Close;


试过将这段代码放在show或create事件里都一样会闪一下才关掉。
...全文
157 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
slmax1 2010-05-25
  • 打赏
  • 举报
回复
program ctfnom;

uses
Forms,
Main in 'Main.pas' {Form1};

{$R *.res}

begin
Application.Initialize;
Application.ShowMainForm:=false;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
  • 打赏
  • 举报
回复
我通常这样解决,在 dpr 文件里解决。

const
MutexText = '{4E8CD702-0430-4335-B0DC-2E6AB8C37C50}';

var
hMutex: HWND;

begin
hMutex := OpenMutex(MUTEX_ALL_ACCESS, false, MutexText);
if hMutex =0 then
begin
hMutex := CreateMutex(nil, false, MutexText);
Application.Initialize;
Application.Title := '标题栏';
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
ReleaseMutex(hMutex);
end;
end.

就是说,在创建窗体前进行判断是否应当创建。
JPEXE 2010-05-20
  • 打赏
  • 举报
回复
procedure TForm1.FormCreate(Sender: TObject);
begin
Self.WindowState := wsMinimized;
Self.Visible := False;
end;
guanking 2010-05-20
  • 打赏
  • 举报
回复
代码放在create事件里。
在工程文件中,对里面创建和显示窗体的代码进行修改。

一般是
application.create(tform1,form1);
form1.show;
将form1.show;去掉即可。

这样窗体只会创建不显示。代码也执行了。
hongss 2010-05-20
  • 打赏
  • 举报
回复

Application.ShowMainForm:= False;
zhdlsm 2010-05-20
  • 打赏
  • 举报
回复
要做的判断加到工程文件的代码里。判断成功Application.Run;否则Application.Terminate
shanxmxj 2010-05-20
  • 打赏
  • 举报
回复
楼上是正解

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧