各位大侠:
delphi刚入门,老板要我写了个小程序,历经千辛万苦,总算写完了,可是老板要求加个登陆界面,于是我加了窗体(frmlogin),可是启动时总是启动原来的窗体(mainfrm),我VB中可以在project菜单中该变启动窗体,可是DELPHI中好像不行,哪位指点指点!
还有两个弱智问题想一并请教各位大侠:
1、两个窗体怎么切换?例如密码输对了,我是不是该这么调用主窗体?:frmlogin.close;mainfrm.show;
2、由于我要在mainfrm的状态栏中显示登陆用户,我该怎么样设定一个变量将frmlogin中的用户名传到mainfrm? 刚入门,手头没有资料,黑心老板催的急,这么些没有入门的问题,请大家别笑我,由于是新手,请说详细点。 万分感谢!!!
delphi刚入门,老板要我写了个小程序,历经千辛万苦,总算写完了,可是老板要求加个登陆界面,于是我加了窗体(frmlogin),可是启动时总是启动原来的窗体(mainfrm),我VB中可以在project菜单中该变启动窗体,可是DELPHI中好像不行,哪位指点指点!
还有两个弱智问题想一并请教各位大侠:
1、两个窗体怎么切换?例如密码输对了,我是不是该这么调用主窗体?:frmlogin.close;mainfrm.show;
2、由于我要在mainfrm的状态栏中显示登陆用户,我该怎么样设定一个变量将frmlogin中的用户名传到mainfrm? 刚入门,手头没有资料,黑心老板催的急,这么些没有入门的问题,请大家别笑我,由于是新手,请说详细点。 万分感谢!!!
解决方案 »
- 如果解决第三方程序的界面闪烁问题
- 用ole创建的excel,怎么把数字的显示格式在程序里面设置为会计专用的格式
- ●对文件进程操作如何才能提高效率?
- QuickRep打印DBGrid多条记录问题?
- 我執行select * from employee這個句子沒有問題,可以打開employee 這個表.可是改成這樣就有問題了.select employee_id,employee_name fro
- 急!急!!急!!!如何通过一个修改按钮同时修改4个表的数据!
- 如何连MSSERVER数据库
- 请问如何在所有的盘符内查找文件???
- dll项目中创建THTTPRIO对象
- 超级菜鸟小问题(五十分白送啊:P)
- 请教ACREPORT打印的问题!
- 在DELPHI的应用程序中,有什么控件去做邮件放送的吗?如何做呢?
一.在Project菜单下面的Options选项里有个MainForm的选项.选入指定的窗体就是主窗体
二.修改工程文件
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
APPlication.CreateForm(TForm2, Form2); //这两个窗体创建的顺序决定哪个是主窗体.
Application.Run;
end.2. if Password then
begin
Mainfro.show;
Mainfro.Label1.Caption := Frmlogin.UserLabel.Caption;
Frmlogin.close;
end;
if Password then
begin
Mainfro.show;
Mainfro.Label1.Caption := Frmlogin.UserLabel.Caption;
Frmlogin.close;
end;
可是窗体Mainfro闪一下就消失了,我改成Mainfro.showmodel可是两个窗口又同时出现在屏幕上,大侠们再指点指点!
谢谢!
Application.CreateForm(TFrm_Login, Frm_Login);
然后对主窗体显示做一个判断弹出login窗体就可以了
begin
Mainfro.show;
Mainfro.Label1.Caption := Frmlogin.UserLabel.Caption;
Frmlogin.hide;
end;
一楼的方法应该可以了哦,
但要把2要作些修改2. if Password then
begin
Mainfro.showmodel;
Mainfro.Label1.Caption := Frmlogin.UserLabel.Caption;
Frmlogin.close;
end;
在mainform的 onshow中让loginfrm.show也可以
begin
try
frmlogin:= Tfrmlogin.create(application);
if frmlogin.showmodal = mrCanCel then
exit;
finally
FreeAndNil(frmlogin);
end;
end;
Application.Initialize;
Application.CreateForm(Tmainfrm, mainfrm);
Application.Run;
if Password then
begin
Mainfro.show;
Mainfro.Label1.Caption := Frmlogin.UserLabel.Caption;
Frmlogin.close;
end;
可是窗体Mainfro闪一下就消失了,我改成Mainfro.showmodel可是两个窗口又同时出现在屏幕上,大侠们再指点指点!
谢谢!
ˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍ
if Password then
begin
Mainfro.show;
Mainfro.Label1.Caption := Frmlogin.UserLabel.Caption;
Mainfro.update;//<--
Frmlogin.hide;
end;
本例用到的form1 为mainform
form2 为loginform
proj1 为工程文件
修改工程文件:
program Proj1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
APPlication.CreateForm(TForm2, Form2);
//在这里添加
application.showmainfrom:= false ;
form2.show ;
//添加结束
Application.Run;
end.在form2.登陆事件里添加这样的代码:
if loginpass = 正确的 then
begin
application.shoiwmainform:= true ;
form1.show;
form2.close;
end else
begin
application.messagebox('您的密码或名称错误,请重新登陆','密码或拥护名称错',mb_ok);
yh.setfocus ; //yh 是你输入拥护的地方;
if 输入3次错误 then application.Terminate;//推出系统;
end ;
这样的好处是 运行主程序的窗口在最小化时不在桌面上.
有问题再E-mail:[email protected]
program Project1;uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {frmlogin};{$R *.res}begin
Frmlogin:=Tfrmlogin.Create(Frmlogin);
Frmlogin.ShowModal;
if not isLogin then exit; Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.frmlogin里放两个按钮,一个确定一个退出,具体如何判断用户登陆就不写了,下面是登陆窗口
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
Tfrmlogin = class(TForm)
BtnOK: TButton;
BtnExit: TButton;
procedure BtnOKClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BtnExitClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
frmlogin: Tfrmlogin;
islogin:boolean;
implementation{$R *.dfm}procedure Tfrmlogin.BtnOKClick(Sender: TObject);
begin
islogin:=true;
close;
end;procedure Tfrmlogin.FormCreate(Sender: TObject);
begin
islogin:=false;
end;procedure Tfrmlogin.BtnExitClick(Sender: TObject);
begin
islogin:=false;
close;
end;end.