begin
FrmLogin := TFrmLogin.Create( Application );
if frmLogin.ShowModal then
begin
Application.Initialize;
Application.Title := '客户服务管理系统';
Application.CreateForm(Task, ask);
Application.Run;
end;
end.
FrmLogin := TFrmLogin.Create( Application );
if frmLogin.ShowModal then
begin
Application.Initialize;
Application.Title := '客户服务管理系统';
Application.CreateForm(Task, ask);
Application.Run;
end;
end.
FrmLogin := TFrmLogin.Create( Application );
if frmLogin.ShowModal = mrOK then
begin
Application.Initialize;
Application.Title := '客户服务管理系统';
Application.CreateForm(Task, ask);
Application.Run;
end;end. //Note:
// FrmLogin 中,密码正确,则 ModalResult := mrOK
// 否则 mrCancel
如果启支第一个窗口是登录窗口,进行登录后应释放登录窗口,然后再建立主窗口。
如果你相获得更详细的信息,请邮 [email protected],不过,不要忘记给分哟!
你的登录窗口一直没有释放掉,浪费内存。to ljhsoft(刘建华):
这样的做法倒是可以,不过,呵呵,如果登录失败,主Form会闪一下,
不信的话,可以试试。
ask.hide;
ask.Free;
Main.Show; //主窗体
Main.Update;
登录的Form在程序运行结束后由Application来释放,不会浪费Windows内存,
不过运行时,倒是的。
在主Form的OnShow或者OnActive里面处理。
强烈谴责以下的用法:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show; // 这是什么用法?
// 在类的实现部分,直接引用另外一个全局的变量,
// 这本身就没有注重类的封装!
// 我觉得,比较好的做法是:
// 1.给 TForm1 增加一个 Property , 定义如下:
// Property OtherForm: TForm read FOtherForm write FOtherForm;
// 2.在 工程文件中 <project1.dpr>中:
// Application.CreateForm( TForm1, Form1 );
// Application.CreateForm( TForm2, Form2 );
// Form1.OtherForm := Form2;
// 然后此Click事件的代码就可以为:
// if OtherForm <> nil then
// OtherForm.Show
// else
// ShowMessage( 'OtherForm is nil!' );
Form1.Button1.Enabled := False;
// 这个写法,问题大大!!!
// 根本就没有了解 TForm1 这个类的意义!
// Form1 本来就是 TForm1 的一个实例,在类的实现中,居然
// 调用类的实例的方法!
// 正确的应当是:
// Button1.Enabled := False;
end;//我的一点意见。欢迎批评指正。
...
begin
Application.Initialize;
if Login then
begin
Application.CreateForm(Form1, TForm1);
Application.Run;
end;
end;在LoginForm unit里实现以下函数:function Login: Boolean;
begin
with TLoginForm.Create(nil) do
begin
Result := ShowModal = mrYes;
Free;
end;
end;
上面的代码,我想不用解释吧。
password:=Tpassword.CREATE(SELF);
TRY
IF PASSWORD.SHOWMODAL=MROK THEN
ELSE
FINALLY
PASSWORD.FREE;
PASSWORD:=NIL;
END;
这个程序包括启动画面,登录界面,主窗体
begin
Application.Initialize;
//启动界面的生成
frmLoad := TfrmLoad.Create(Application);
//显示启动
frmLoad.Show;
frmLoad.Update;
//在启动画面显示过程,创建主窗体
Application.CreateForm(TfrmMain, frmMain);
//生成登录界面
frmPassword := TfrmPassword.Create(Application);
//登录界面生成后,释放启动画面
frmLoad.Hide;
frmLoad.Free;
//显示登录界面
frmPassword.ShowModal;
//我没有用ShowModal返回值,而是添加一个方法,判断是否通过登录
if frmPassword.PasswordThrough then
//若是登录成功,运行程序,否则停止程序
Application.Run
else
Application.Terminate;
end.在frmPassword中调用Close方法这样既不会没有释放资源,也不会产生跳动
请给我登录程序,[email protected]