读书人

如何做一个登录窗体让主窗体也显示在后

发布时间: 2013-01-11 11:57:35 作者: rapoo

怎么做一个登录窗体让主窗体也显示在后面

想做一个登录窗体,同时出显主窗体,

这个登录窗体是模态窗体,然后显示主窗体, 让模态窗体的父窗体为这个主窗体,

这应该怎么做??


[解决办法]
Frm_Main是主窗体。
Frm_Login是登录窗体。

在Frm_Main的OnShow里面写
var
Frm_Login:TFrm_Login;
begin
Frm_Login := TFrm_Lonig.Create(Application);
try
Frm_Login.ShowModel;
//此处最好是在登录窗体中定义一个公用变量为记录是否登录成功。ModalResult有时候返回并不准确!
if Frm_Login.ModalResult = mrOk then
ShowMessaeg("登录成功")
else
begin
ShowMessage("登录失败!");
//整个程序结束
Application.Terminate;
Exit;
end;
finally
Frm_Login.Free;
end;
end;

[解决办法]
晕,没看清楚!上面这个显示不出来主窗体。
要想显示,把登录代码写到OnActive事件里应该可以!
[解决办法]
用定时器吧,showmodal之前关闭定时器;
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls,unit2;

type
TForm1 = class(TForm)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);
var
Form2:TForm2;
begin
Timer1.Enabled:=False;
Form2:=TForm2.create(self);
form2.ShowModal;

end;
-----------

[解决办法]

引用:
晕,没看清楚!上面这个显示不出来主窗体。
要想显示,把登录代码写到OnActive事件里应该可以!


主form的OnActive事件的第一次执行时,创建并模式显示登录窗口
[解决办法]
打开项目文件后作如下调整


Application.CreateForm(TForm8, Form8); //主窗口
Application.CreateForm(TForm10, Form10);//模态窗口
Form8.Show;//显示主窗口
Form10.ShowModal;//显示模态窗口

读书人网 >.NET

热点推荐