16,748
社区成员
发帖
与我相关
我的任务
分享
1. 登录窗体先显示,登录后显示主窗体
用两个窗口举例如下:
FORM1是主窗体,FORM2是动态生成的登陆窗体(project - > options中的forms页面,把form2从左边拖到右边去),form2上面有两个按钮,一个是登陆,一个是取消,对应代码分别如下:
form2的代码:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
ModalResult := mrOk;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
ModalResult := mrCancel;
end;
end.
然后在工程文件中,默认为project1.pas, 代码如下:
program Project1;
uses
Forms,
Controls,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};
{$R *.res}
begin
Application.Initialize;
Form2 := TForm2.Create(nil);
try
if Form2.ShowModal = mrOk then begin
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
finally
Form2.Free;
end;
end.
运行,查看效果,会发现程序先出现的是form2,当点击了登陆按钮,可以显示主窗体,否则程序结束。至于你说的数据连接窗口,同样的方法,自己编码控制吧。
2 .两个窗体一起闪烁,两个窗口一起显示,登录窗体在主窗体上方显示,也就是说层叠的, 不过得登录了之后才能使主窗体活动
form1中代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Form2 := TForm2.Create(nil);
Form1.Show;
try
if Form2.ShowModal <> mrOk then
Application.Terminate;
finally
Form2.Free;
end;
end;
end.
工程文件的代码如下:
program Project2;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
form2的代码如下:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
ModalResult := mrOk;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
ModalResult := mrCancel;
end;
end.