******显示主窗口和登录窗口的问题******

LXJ2001 2002-03-27 10:55:37
我想在程序启动时显示主窗口,同时调出登录窗口(为模态窗口),该如何做?
显示的效果是主窗口在后面,登录窗口在主窗口前面。
...全文
51 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
ihihonline 2002-03-27
  • 打赏
  • 举报
回复
不好意思,如果是这样的话,就在ONSHOW里边,看错了,不好意思
ihihonline 2002-03-27
  • 打赏
  • 举报
回复
在 项目文件 pargram里边显示;下边给你一个,看一看;
program TryLogin;
uses Forms, MainFrom in 'MainFrom.pas' {main},
。。。。
Application.CreateForm(Txsxxbjform, xsxxbjform);
Application.CreateForm(TDataModule1, DataModule1);
Application.CreateForm(TDataModule2, DataModule2);
Application.CreateForm(TForm1, Form1);
flashform.showmodal;
logform.showmodal;
while logform.edit3.text<>'true' do
begin
logform.showmodal;
end;
Application.Run;
end.
gk123 2002-03-27
  • 打赏
  • 举报
回复
在主窗口Form中放置TTimer控件,设置时间要小,在Timer1OnTime事件中创建登陆窗口并且摸态显示要关闭控件

LXJ2001 2002-03-27
  • 打赏
  • 举报
回复
ok结贴:
1 使用时间控件 可以
2 发送一条消息 也可以(更好)
发送消息必须用:POSTMESSAGE
fredfei 2002-03-27
  • 打赏
  • 举报
回复
在implementation后面引用你login 的unit
uses frmLogin;
在FormCreate事件中:
application.CreateForm(Tfrmlogin,frmLogin);
if frmLogin.ShowModal=返回值 then
...
else
...
andylife 2002-03-27
  • 打赏
  • 举报
回复
原代码下载:
http://asp.6to23.com/andylife/life/login.rar

大小:152K

不知是不是你想要的那样了
光明山人 2002-03-27
  • 打赏
  • 举报
回复
与wz2001相似(有一点差别),我的方法是:

在主窗口的FormShow事件中,用PostMessage投递(差别在这里,不是发送SendMessage)一条自定义消息给自己,然后在那条消息的处理中弹出登录窗口。
我曾经解答过类似问题,上有代码示范,请搜索一下。
andylife 2002-03-27
  • 打赏
  • 举报
回复
原代码下载:
http://asp.6to23.com/andylife/life/login.rar

大小:152K

不知是不是你想要的那样了
andylife 2002-03-27
  • 打赏
  • 举报
回复
program TryLogin;

uses
Forms,
MainFrom in 'MainFrom.pas' {main},
LoginFrom in 'LoginFrom.pas' {login};

{$R *.RES}

begin
Application.CreateForm(Tmain, main);
Main.Show;
Login:=TLogin.Create(Application);
if Login.Can_Open then
begin
Application.Initialize;
Application.Run;
end
else
Application.Terminate;
end
LXJ2001 2002-03-27
  • 打赏
  • 举报
回复
to genphone_ru(票票):我试一下先
to forgot(让一切随风):不明白你的意思,能否多写几行
andylife 2002-03-27
  • 打赏
  • 举报
回复
// TryLogin.dpr 代码:
////////////////////////////////////////
program TryLogin;

uses
Forms,
MainFrom in 'MainFrom.pas' {main},
LoginFrom in 'LoginFrom.pas' {login};

{$R *.RES}

begin
Application.CreateForm(Tmain, main);
Main.Show;
Login:=TLogin.Create(Application);
if Login.Can_Open then
begin
Application.Initialize;
Application.Run;
end
else
Application.Terminate;
end.
//////////////////////////////////////////
//登录;窗体代码:
////////////////////////////////
unit LoginFrom;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
Tlogin = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public

function Can_Open:boolean;
{ Public declarations }
end;

var
login: Tlogin;

implementation

{$R *.DFM}



{ Tlogin }



procedure Tlogin.Button1Click(Sender: TObject);
begin
MODALRESULT := mrok;
end;

procedure Tlogin.Button2Click(Sender: TObject);
begin
MODALRESULT := mrcancel;
end;

function Tlogin.Can_Open: boolean;
begin
if showModal = mrok then
Result := true
else
Result := false;
end;

end.
//////////////////////////////////////////
//主窗体代码:

unit MainFrom;

interface

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

type
Tmain = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;

var
main: Tmain;

implementation

{$R *.DFM}

end.
/////////////////////////
wz2001 2002-03-27
  • 打赏
  • 举报
回复
用时间控件不小心就会出错,不信就试一试。
发送一条自定义的消息,弹出登陆窗口。
xunji 2002-03-27
  • 打赏
  • 举报
回复
在登录窗口的ONCREAT中
将登录窗口的PARENT属性设为主窗口;
再在主窗口的ONSHOW中SHOW登录窗口
forgot 2002-03-27
  • 打赏
  • 举报
回复
在delphi里可以用下面这种方法弹出登录窗口
OnActivate:=nil;
票票飞扬 2002-03-27
  • 打赏
  • 举报
回复
在主窗口Form中放置TTimer控件,在FormCreate事件中击活Timer1,在Timer1OnTime事件中创建登陆窗口并且摸态显示。
gk123 2002-03-27
  • 打赏
  • 举报
回复
使用时间控件

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧