我在客户端建立了一个MDI(FormMain和FormChild)的程序,想用登录窗口(formL)进行用户身份确认,但我在工程选项中把登录窗口设为启动的话FormChild窗口就不能建立,把FormMain窗口设为启动的话,FormL窗口就没法建立。为什么?
——————————————————————————我应该怎么做呢?(我已试过show,showmodal语句了)。
——————————————————————————我应该怎么做呢?(我已试过show,showmodal语句了)。
在它的ONCREATe事件中手工创建
FormL :=TFormL。Create(Application);
FormL。showmodal;
然后在FormL的登陆事件中如果密码错误则用Application。terminate退出程序
我当时是把FormMDI作为mainforn,
在FormMDI的onshow事件中用showmodal显示登陆窗体。
你可以试着在看看。
FormL窗口又怎么办呢?
program Project1;uses
Forms,
Unit1 in 'Unit1.pas' {FormLogin},
Unit2 in 'Unit2.pas' {FormMDI},
Unit3 in 'Unit3.pas' {FormChild};{$R *.res}begin
Application.Initialize;
if doLogin then //调用登陆函数,在Unit1(formLogin)中
begin
Application.CreateForm(TFormMDI, FormMDI);
Application.CreateForm(TFormChild, FormChild);
Application.Run;
end else
begin
application.terminate;
end;
end.
//============= 下面是登陆界面 ===========//
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TFormLogin = class(TForm)
btOK: TButton;
btQuit: TButton;
procedure btOKClick(Sender: TObject);
procedure btQuitClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
FormLogin: TFormLogin;
function doLogIn:boolean;implementation{$R *.dfm}
function doLogIn:boolean;
begin
with TFormLogin.create(application) do
begin
if ShowModal = mrok then
result := true
else
result := false;
free;
end;
end; procedure TFormLogin.btOKClick(Sender: TObject);
begin
if 条件正确 then
modalresult := mrok
else
ModalResult := mrCancel;
end;
procedure TFormLogin.btQuitClick(Sender: TObject);
begin
ModalResult := mrCancel;
end;end.
这又怎么办呢?我好苦恼啊!(自己好笨)!!!