1.新建一个工程-->>修改Form1的创建方式为手动创建 Form1 := TForm1.Create(Application);
2.运行程序:右击程序在任务栏上的图标:出现关闭、最小化的菜单
3.单击关闭菜单,发现竟然失效了……………………
4.有什么方法可以让关闭菜单有效?
Application.Initialize;
Form1 := TForm1.Create(Application);
Form1.ShowModal;
Application.Run;
2.运行程序:右击程序在任务栏上的图标:出现关闭、最小化的菜单
3.单击关闭菜单,发现竟然失效了……………………
4.有什么方法可以让关闭菜单有效?
Application.Initialize;
Form1 := TForm1.Create(Application);
Form1.ShowModal;
Application.Run;
解决方案 »
- 怎么导入导出excel数据?
- 怎样获得硬盘序列号?
- 为何DisableControls没有起作用?
- 请教DSPACK下DEMO问题
- 让用户来设计调整报(rave)
- delphi7程序如何更新word2003目录内容
- 如何将combobox一出来就设置成下拉的状态??
- 用WriteProFileString函数的疑惑,有人回答吗?
- 哪里有那种可以放入图片的编辑组件? RTF should be fine...
- 我们公司的delphi代码(胆不是我写的!),看看,你觉得怎么样
- 好久没来了,一直在外面出差,散分已示存在!
- ServerSocket 如何断开长时间连接~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
改成
Form1.Show;//为什么要用独占式的啊!改成这个试下看!
我这个
Form1 := TForm1.Create(Application);
Form1.ShowModal;
其实做的是一个登陆窗口,
用的是 if Form1.ShowModal = mrok then
//进入主窗体
else
//退出系统的功能,,
但是发现上面的那个功能失效了 ,,
虽然不是什么大问题,但看看有没解决方法
Application.CreateForm(TForm2, TForm2);
Application.CreateForm(TForm1, Form1);
Form1.ShowModal;
Application.Run;其中第一个创建的窗体就是主窗体! 这里就是Form2 。主窗体是自动显示的,不需要显式调用 show方法 。
程序运行时,主窗体不应该被关闭,因为一旦关闭主窗体,整个程序就会结束。你要创建登录功能,借用你的代码,可以稍微修改一下: Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TForm1, Form1);
if (Form1.ShowModal<>mrOK) then exit;
Application.Run;这样就行了。
Application.Title := '系统模版';
Application.CreateForm(TData, Data);//数据模块
Application.Run;
SysLoginForm := TSysLoginForm.Create(Application);
if SysLoginForm.ShowModal = mrok then
begin
Application.CreateForm(TOSysMainForm, OSysMainForm);
OSysMainForm.ShowModal();
end
else
begin
SysLoginForm.Free;
Application.Terminate;
end;
其实我是这样考虑的--->>因为主窗体要动态加载菜单等操作--->>让登陆窗口最先加载进来可能运行的比较快些,,,
看看application.createform的代码就知道了
看一下这里吧:http://topic.csdn.net/u/20090321/15/3c1f3733-b945-4dea-bbed-9b5074179f7c.html
我也是一知半解,要是有大牛解释一下就好了
以前有一本《Delphi 高手突破》(作者:申旻),这方面讲得很详细,可找出来看看。
由于Delphi封装得太好,把Windows应用程序的许多细节给“屏蔽”掉了,要想真正弄懂,还得学 VC ,如许多高手所说的:学时VC,用时Delphi 。
1.如果用application.createform按先创建主窗体的话:
那登陆窗口的右击按扭将失效,
2.
如果用application.createform先窗体登陆窗体的话那么主窗体的右击按扭将失效
而且觉得一般的程序都应该是先创建登陆窗体再创建主窗体
Application.Initialize;
Application.Title := '系统模版';
Application.CreateForm(TOSysMainForm, OSysMainForm);
Application.CreateForm(TData, Data);//数据模块
SysLoginForm := TSysLoginForm.Create(Application);
if SysLoginForm.ShowModal <> mrok then
begin
application.showmainform = false;
end
else
begin
SysLoginForm.Free;
end;
Application.Run;另外,的帖子里这样做,你可以试试
if SysLoginForm.ShowModal = mrok then
begin
application.run;
end
以上這麼多兄弟的做法似乎都解決不了這問題,你說下你的解決方案?
if SysLoginForm.ShowModal = mrok then
begin
application.run;
end這樣子似乎也不行,以前是這樣寫的,,後來更新Mssql控件後運行發現有錯,改了
Application.Title := '系统模版';
Application.CreateForm(TOSysMainForm, OSysMainForm);
Application.CreateForm(TData, Data);//数据模块
SysLoginForm := TSysLoginForm.Create(Application);
if SysLoginForm.ShowModal <> mrok then
begin
application.showmainform = false;
application.Terminate;
end
else
begin
SysLoginForm.Free;
Application.Run;
end;
这样呢?