书上的一个例子,但无法运行,郁闷!拜托各位给看看
unit main;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ExtCtrls;type
TMainForm = class(TForm)
Panel1: TPanel;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
TabSheet6: TTabSheet;
TabSheet7: TTabSheet;
TabSheet8: TTabSheet;
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
passwordin:boolean;
function password(s1:string;s2:string):boolean;
public
{ Public declarations }
// function password(s1:string;s2:string):boolean;
end;var
MainForm: TMainForm;implementationuses Unit1;{$R *.dfm}
function tmainform.password(s1:string;s2:string):boolean;
var
myfile:file;
rt:boolean;
numread:Integer;
buf1,buf2:string[30];
username:string;
begin
rt:= false;
assignfile(myfile,'system.ini');
reset(myfile,1); //打开系统配置文件
repeat
blockread(myfile,buf1,12,numread); //读用户名
blockread(myfile,buf2,12,numread); //读密码
if(s1= buf1) and(s2= buf2) then //判断是否正确
begin
username:= s1; //给用户名赋值
username:= s2;
result:= true; //置返回值
exit;
end;
until(numread= 0);
closefile(myfile); //关闭文件
passwordin:= rt;
end;procedure TMainForm.FormActivate(Sender: TObject);
var
times,rn:Integer;
s1,s2:string[200];
begin
times:=1;
if login = false then //login变量控制系统登录窗口是否显示
begin
login:= true;
repeat
rn:=PasswordDlg.showmodal; //显示系统登录窗口
if rn = mrok then //检验返回值
begin
s1:= PasswordDlg.ComboBox1.Text; //读取用户名
s2:= PasswordDlg.Password.Text; //读取密码
if Password(s1,s2) then //比较密码(自定义函数)
times:=200
else
begin
times:=times+1;
if times>3 then
close
else
messagedlg('你输入的密码有误,请重新输入!',mtwarning,[mbok],0);
end;
end
else {rn = mrcancel}
begin
times:= 100;
close;
end;
until(times>3);
if PasswordDlg.ComboBox1.Text ='system' then //以下不同用户可见不同的页
mainform.UpdateActions; //激活系统
PageControl1.activepage:= tabsheet1;
end;
if PasswordDlg.ComboBox1.Text= 'renshi' then
begin
mainform.UpdateActions; //激活系统
PageControl1.activepage:= tabsheet1;
tabsheet3.TabVisible:= false;
tabsheet4.TabVisible:= false;
end
else if PasswordDlg.ComboBox1.Text= 'caiwu' then
begin
mainform.UpdateActions; //激活系统
PageControl1.activepage:= tabsheet3;
tabsheet1.TabVisible:= false;
tabsheet2.TabVisible:= false;
end
else if PasswordDlg.ComboBox1.Text= 'guest' then
begin
mainform.UpdateActions; //激活系统
PageControl1.activepage:= tabsheet1;
tabsheet3.TabVisible:= false;
tabsheet4.TabVisible:= false;
tabsheet5.TabVisible:= false;
tabsheet6.TabVisible:= false;
end;
end;end.
提示错误:
[Warning] main.pas(63): Return value of function 'TMainForm.password' might be undefined
[Error] main.pas(71): Undeclared identifier: 'login'
[Fatal Error] kaoqin.dpr(6): Could not compile used unit 'main.pas'
unit main;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ExtCtrls;type
TMainForm = class(TForm)
Panel1: TPanel;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
TabSheet6: TTabSheet;
TabSheet7: TTabSheet;
TabSheet8: TTabSheet;
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
passwordin:boolean;
function password(s1:string;s2:string):boolean;
public
{ Public declarations }
// function password(s1:string;s2:string):boolean;
end;var
MainForm: TMainForm;implementationuses Unit1;{$R *.dfm}
function tmainform.password(s1:string;s2:string):boolean;
var
myfile:file;
rt:boolean;
numread:Integer;
buf1,buf2:string[30];
username:string;
begin
rt:= false;
assignfile(myfile,'system.ini');
reset(myfile,1); //打开系统配置文件
repeat
blockread(myfile,buf1,12,numread); //读用户名
blockread(myfile,buf2,12,numread); //读密码
if(s1= buf1) and(s2= buf2) then //判断是否正确
begin
username:= s1; //给用户名赋值
username:= s2;
result:= true; //置返回值
exit;
end;
until(numread= 0);
closefile(myfile); //关闭文件
passwordin:= rt;
end;procedure TMainForm.FormActivate(Sender: TObject);
var
times,rn:Integer;
s1,s2:string[200];
begin
times:=1;
if login = false then //login变量控制系统登录窗口是否显示
begin
login:= true;
repeat
rn:=PasswordDlg.showmodal; //显示系统登录窗口
if rn = mrok then //检验返回值
begin
s1:= PasswordDlg.ComboBox1.Text; //读取用户名
s2:= PasswordDlg.Password.Text; //读取密码
if Password(s1,s2) then //比较密码(自定义函数)
times:=200
else
begin
times:=times+1;
if times>3 then
close
else
messagedlg('你输入的密码有误,请重新输入!',mtwarning,[mbok],0);
end;
end
else {rn = mrcancel}
begin
times:= 100;
close;
end;
until(times>3);
if PasswordDlg.ComboBox1.Text ='system' then //以下不同用户可见不同的页
mainform.UpdateActions; //激活系统
PageControl1.activepage:= tabsheet1;
end;
if PasswordDlg.ComboBox1.Text= 'renshi' then
begin
mainform.UpdateActions; //激活系统
PageControl1.activepage:= tabsheet1;
tabsheet3.TabVisible:= false;
tabsheet4.TabVisible:= false;
end
else if PasswordDlg.ComboBox1.Text= 'caiwu' then
begin
mainform.UpdateActions; //激活系统
PageControl1.activepage:= tabsheet3;
tabsheet1.TabVisible:= false;
tabsheet2.TabVisible:= false;
end
else if PasswordDlg.ComboBox1.Text= 'guest' then
begin
mainform.UpdateActions; //激活系统
PageControl1.activepage:= tabsheet1;
tabsheet3.TabVisible:= false;
tabsheet4.TabVisible:= false;
tabsheet5.TabVisible:= false;
tabsheet6.TabVisible:= false;
end;
end;end.
提示错误:
[Warning] main.pas(63): Return value of function 'TMainForm.password' might be undefined
[Error] main.pas(71): Undeclared identifier: 'login'
[Fatal Error] kaoqin.dpr(6): Could not compile used unit 'main.pas'
解决方案 »
- 关于Delphi2009三层架构
- 如何设计一个图象,打印后用特殊滤光镜,可看到隐藏的文字或图片
- 50个Gmail 邀请。 需要的发邮件 [email protected]
- 我想问一下在SQL 和在ACESS 里能同时运行的语句..请大家帮忙..
- 请问哪位有LZW压缩算法的源代码
- 如何开发一个软件自动安装系统?
- 菜鸟的烦恼之"音频及时传送"篇(100分)
- quickreport报表,多列显示时,怎样控制数据排列的方向(垂直方向优先或水平方向优先)?
- 高手们请帮帮我
- 一个项目完成后,项目奖金应为多少,有没有一个较为规范的规定?
- 求助:WorkBooks[2].close很慢
- 三层 xp sp2 怎么打开 211 端口
login : boolean;
2、就是login没有定义 这个变量从哪里来的