求求大哥大姐大叔大嫂大妈,救命求救求教啊!!!!!

Breezee7 2003-11-10 08:07:17
本来不想问这些幼稚的问题的,但我实在是想了一个星期都想不出来啊:
Delphi6下,我想做一个在主窗体之间弹出的“登录”窗体,用于输入密码。(frmLogin ,上有一个Edit_Password用于输入密码).
在主窗体之前弹出这个fomLogin,我把它用在frmMain.Fowshow时(主窗体):
frmLogin:=TfrmLogin.create(application);
frmLogin.showmodal;

ButtonOK.onClick时,如果Edit_Password等于正确的密码,则:
frmLogin.close;
否则:
begin
application.message('密码错误','错误',MB_ICONWARNING);
Edit_password.setfocus;
end;

可现在出现的问题时:
当我是错误的密码按下ButtonOk时,先弹出一个对话框(就是application.message了),但当我点了上面的OK后,并没有像我想要的那样:将焦点返回到frmLogin.Edit_Password上,而是直接弹出一主窗体。

求教:这是怎么回事啊?是什么原因造成的啊???!!!!!

高手,教教我吧!!!!
...全文
50 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zqc-tutorial 2003-11-11
  • 打赏
  • 举报
回复
模态窗体的ModalResult属性只要被赋为非mrNone的值就会关闭,
所以你应该在验证成功后将窗体的ModalResult属性赋为mrOK。
Breezee7 2003-11-11
  • 打赏
  • 举报
回复
谢谢三楼的 angle097113哥哥:
果然是这个该死的TBitBtn按钮造成的!!!!!

可是为什么呢?
Dlwxn 2003-11-10
  • 打赏
  • 举报
回复
program Project1;

uses
Forms,Controls,SysUtils,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Form2.ShowModal;
if Form2.ModalResult = mrOk then
begin
FreeAndNil(Form2);
Application.Run;
end else
begin
Application.Terminate;
end
end.

///////////unit2单元///////////////
procedure TForm2.Button1Click(Sender: TObject);
begin
if Edit1.Text='1' then ModalResult:=mrOK
else begin
Application.MessageBox(PChar('密码错误'),'错误',MB_OK+MB_ICONWARNING);
Edit1.SetFocus;
end;
end;
ekin 2003-11-10
  • 打赏
  • 举报
回复
application.message('密码错误','错误',MB_ICONWARNING);
去掉试试
Breezee7 2003-11-10
  • 打赏
  • 举报
回复
还有人教教我吗?????
yudehui 2003-11-10
  • 打赏
  • 举报
回复
怎么乱七八糟的
不懂在说什么?
Seahilly 2003-11-10
  • 打赏
  • 举报
回复
up
Breezee7 2003-11-10
  • 打赏
  • 举报
回复
是啊,三楼的哥哥:我的那个Button是TBitBtn啊,这有什么关系吗?
之间我也有想是不是这个原因,但你所说的“modalresult属性”是指什么?它是指BUTTON的什么属性??有什么用?
Breezee7 2003-11-10
  • 打赏
  • 举报
回复
不对啊,“东情至男”哥:
我有见过另外一些别人的源码,他们都是这样来做的:即,除了主窗体自动创建外,其它所有的窗体都在使用时创建,而且我现在的这个程序里全是这么做的,现在不好仅仅只为了这个frmLogin就放弃了一大堆form吧。
一定还有另外的方法的。
而且出现我所说的情况的原因是什么?您还没有说呢!

还有“有问必答”哥,你的:
if not LogSuccess 。。。
frmMain.LogIn 。。。
frmMain.InitStoreHouse。。。
分别是什么意思啊?????????
angle097113 2003-11-10
  • 打赏
  • 举报
回复
是不是你得这个ButtonOK按钮是TbitBtn类型得按钮的呢
如果是的话把按钮的modalresult属性设置为mrnone

jazzyfree 2003-11-10
  • 打赏
  • 举报
回复
在主过程中先初始化frmLogin,不要初始化frmMain,即把frmLogin设置为启动窗体
ButtonOK.onClick时,如果Edit_Password等于正确的密码,则:
frmLogin.close;
frmMain:=frmMain.create(application);
frmMain.show;
否则:
begin
application.message('密码错误','错误',MB_ICONWARNING);
Edit_password.setfocus;
end;
saien 2003-11-10
  • 打赏
  • 举报
回复
program LJC2001;
{$R *.RES}
var
s1,s2 : string;

begin
//
s1 := Application.ClassName;
s2 := '';
if FindWindow(PChar(s1),PChar(s2)) <> 0 then
begin
ShowMessage('本程序的另一个实例已经在运行,请单击确定退出');
Exit;
end;
//以上用于防止重复进入本程序

Application.Initialize;
frmSplash := TfrmSplash.Create(Application);
frmSplash.Show;
frmSplash.Refresh ;
Application.Title := '';
Application.CreateForm(TdtmdlLJC2001, dtmdlLJC2001);
Application.CreateForm(TfrmMain, frmMain);
Application.CreateForm(TfrmJiaMi, frmJiaMi);
frmSplash.Free;
frmLogin := TfrmLogin.Create(nil);
frmLogin.ShowModal;
if not LogSuccess then
begin
frmLogin.Free;
Application.Terminate ;
end else
begin
frmMain.LogIn ;
frmMain.InitStoreHouse ;
Application.Run
end;
end.

5,930

社区成员

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

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