100分求密码进入功能的提示。/(100分)

  • 主题发起人 主题发起人 loveflying88
  • 开始时间 开始时间
L

loveflying88

Unregistered / Unconfirmed
GUEST, unregistred user!
待进入窗体:form1如下设置:
var
logined:boolean;
begin

procedure TForm1.FormCreate(Sender: TObject);
begin
Logined:=False;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
if not Logined then form2.Showmodal;
end;

密码登陆界面form2如下设置:

private
Passtime:byte;

{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;
Passtime:byte;
implementation
uses unit3,unit1;

{$R *.dfm}

procedure TForm2.BitBtn2Click(Sender: TObject);
begin
Close;
Application.Terminate;
end;

procedure TForm2.BitBtn1Click(Sender: TObject);
begin
inc(PassTime);
if Edit1.Text=MyPass then
begin
form1.Logined:=True;
form1.WindowState:=wsMaximized;
Close;
end else
begin
Label1.Caption:=Format('密码错误第%d次,请重新输入:',[PassTime]);
if PassTime>=3 then
begin
BitBtn2.Click;
end else
begin
Edit1.Text:='';
Edit1.SetFocus;
end;
end;
end;



procedure TForm2.FormCreate(Sender: TObject);
begin
passtime:=0;
end;

end.

数据模块form3.已建好,提供mypass变量。



可是每次进入登陆后输入密码即使有误,也可进入form1.
如果把form1中的form2.showmadal改为form2.show.这时错误密码有 提示信息,
并且实现了此功能,但form2的取消按钮出错。

这是为什么?
 
>>但form2的取消按钮出错。
请按建立的顺序反向手工Free对象(如from3)应可解决出错的问题,另外,如果只为了消除错
误,terminate,halt,exit可以交替使用试试,这是你在不明白程序退出机制下的为达目的不
择手段的好方法
 
另外你的确定按钮的MODALRESULT是否设业MROK,如是,请设为MRNONE试试
 
出错信息为:

cannot change visible in onshow or onhide.

不好意思,你说的方法不管用。
 
如不见意,请把你的源程序把包到REDCHILD123@SINA.COM
我帮你解决后发回给你就得了,好不?
 
以上就是我的源代码啊。
 
我的意思是说,如果你的项目不涉及商业机密的话,把整个项目发过来,因为我要看你
的PROGRAM的代码,在编绎环境下用不了五分钟就解决了的
 
好。
我急用,
接受吧。
21:30返回。
loveflying88@sina.com
 
不好意思,还未收到,
redchild123@sina.com
or
ldb123@21cn.com
 
passward is 3!
 
用showmessage('');就可以了,
有图的话就form2.show;不要这么罗嗦,
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
inc(PassTime);
if Edit1.Text=MyPass then
begin
form1.Logined:=True;
form1.WindowState:=wsMaximized;
form2.show;
(里面设一个确定按扭就关闭了)
Close;
end else
begin
Label1.Caption:=Format('密码错误第%d次,请重新输入:',[PassTime]);
if PassTime>=3 then
begin
BitBtn2.Click;
end else
begin
Edit1.Text:='';
Edit1.SetFocus;
end;
end;
end;

 
将你发给我的程式中那个form2.bitton2.modalresult属性改为mrnone就不会出现
"可是每次进入登陆后输入密码即使有误,也可进入form1"
至于"cannot change visible in onshow or onhide."
请看我发回给你的程序.修改了project1.DPr如下
program Project1;

uses
Forms,Controls,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {DataModule3: TDataModule},
Unit4 in 'Unit4.pas' {AboutBox},
Unit5 in 'Unit5.pas' {Form5},
Unit6 in 'Unit6.pas' {Form6},
Unit7 in 'Unit7.pas' {Form7},
Unit8 in 'Unit8.pas' {Form8},
Unit9 in 'Unit9.pas' {Form9};

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
form2.ShowModal;//修改了
////下次不要这下面这么多一启动就建立起来,还要好好学习呀!
Application.CreateForm(TDataModule3, DataModule3);
Application.CreateForm(TAboutBox, AboutBox);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm6, Form6);
Application.CreateForm(TForm7, Form7);
Application.CreateForm(TForm8, Form8);
Application.CreateForm(TForm9, Form9);
Application.Run;
end.

修改了UNIT1
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ActnList, ImgList, StdCtrls;

type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
ImageList1: TImageList;
ActionList1: TActionList;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
public
logined:boolean;
{ Public declarations }
end;

var
Form1: TForm1;
MyPath:String;
const
MyPassW='localhost';

implementation
uses unit2,unit4,unit5,unit6,unit7;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Logined:=False;

end;

procedure TForm1.FormActivate(Sender: TObject);
begin
// if not Logined then form2.ShowModal; 修改了
end;

procedure TForm1.N7Click(Sender: TObject);
begin
aboutbox.showmodal;
end;

procedure TForm1.N10Click(Sender: TObject);
begin
close;
end;

procedure TForm1.N6Click(Sender: TObject);
begin
form5.show;
end;

procedure TForm1.N1Click(Sender: TObject);
begin
form6.show;
end;

procedure TForm1.N2Click(Sender: TObject);
begin
form7.show
end;

end.

从你的程序中看出你是个标准的初学者,应该不过七天,
打印的问题也可以问,
好好学习吧
 
非常的感谢。
问题已解决。


很希望跟你交个朋友。

qq:47253065
email:loveflying88
 
show和showmodal到底有什么区别?
 
多人接受答案了。
 
后退
顶部