如果主窗口为MainForm,登录窗口为LoginForm,那么可以在MainForm的OnCreate或OnShow 事件里面创建LoginForm,用ShowModal显示。这样LoginForm不关掉的话,主窗口就不能动了。
解决方案 »
- 如何在Panel里显示一个mdi子窗口??
- 编码转换问题?
- delphi7写的类型为wad的webservice,如何在IIS中发布?~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 请问类型转换的问题!在线等待!!!!!
- 很小的问题进来看看!
- 诚聘delphi+Sql Server+自动化 软件开发人员
- Chr(StrToInt('$'+Copy(s,1,2)) + Chr(StrToInt('$'+Copy(s,3,2)) <> '汉字' (2K)
- 关于BLOB的问题
- adoquery刷新
- 如何知道运行外部程序和关闭外部程序
- Delphi下的socket(如TServerSocket)为什么没有超时属性,难道不会有出错吗?
- 请问什么是资源字符串(resourcestring)?
Login: boolean;
begin
Application.Initialize;
with TPasswordDlg.Create(Application) do
try
Login := ShowModal=mrOK;
finally
Free;
end;
if Login then
begin
Application.CreateForm(TMainFrm, MainFrm);
Application.Run;
end;
end.
NO :先出现主窗体,再出现登录对话窗;
下边是当登录失败时,关闭主窗体的,如果不想让其关闭,则不要加
application.Terminate ;
好了,这样就可以了
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type
TForm1 = class(TForm)
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
logo:boolean;
{ Public declarations }
end;var
Form1: TForm1;implementation
uses unit2;{$R *.DFM}procedure TForm1.FormShow(Sender: TObject);begin
if not logo then
begin
form2:=Tform2.create(application);
form2.show;
end;end;procedure TForm1.FormCreate(Sender: TObject);
begin
logo:=false;
end;end.
procedure TForm2.Button1Click(Sender: TObject);
begin application.Terminate ;end;end.
但是有一点:
form1.onActivate:=form1.onshow;
在属性中进行设置;