首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2013-01-11 
怎么做一个登录窗体让主窗体也显示在后面想做一个登录窗体,同时出显主窗体,这个登录窗体是模态窗体,然后显

怎么做一个登录窗体让主窗体也显示在后面
  
  想做一个登录窗体,同时出显主窗体,

     这个登录窗体是模态窗体,然后显示主窗体, 让模态窗体的父窗体为这个主窗体,
  
     这应该怎么做??

     
[解决办法]
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;//显示模态窗口

热点排行