原代码:unit main;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdActns, ActnList, ImgList, ComCtrls, ToolWin;type
TF_main= class(TForm)
MainMenu1: TMainMenu;
ActionList1: TActionList;
ImageList1: TImageList;
WindowCascade1: TWindowCascade;
WindowMinimizeAll1: TWindowMinimizeAll;
WindowTileHorizontal1: TWindowTileHorizontal;
WindowTileVertical1: TWindowTileVertical;
M_system: TMenuItem;
M_connect: TMenuItem;
M_disconnect: TMenuItem;
N1: TMenuItem;
M_exit: TMenuItem;
M_manager: TMenuItem;
M_add: TMenuItem;
M_change: TMenuItem;
M_search: TMenuItem;
M_window: TMenuItem;
M_cascade: TMenuItem;
M_tile_h: TMenuItem;
M_tile_v: TMenuItem;
M_mini_all: TMenuItem;
M_help: TMenuItem;
M_about: TMenuItem;
StatusBar1: TStatusBar;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
ToolButton11: TToolButton;
ToolButton12: TToolButton;
ToolButton13: TToolButton;
procedure M_connectClick(Sender: TObject);
procedure M_disconnectClick(Sender: TObject);
procedure M_exitClick(Sender: TObject);
procedure M_addClick(Sender: TObject);
procedure M_changeClick(Sender: TObject);
procedure M_searchClick(Sender: TObject);
procedure M_aboutClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
F_main: TF_main;implementation
{$R *.dfm}
uses
About, login, DataModule, add, change, search;procedure TF_main.M_connectClick(Sender: TObject);
begin
F_login.ShowModal;
if login then
begin
M_connect.Enabled:=false;
TB_connect.Enabled:=false;
M_disconnect.Enabled:=True;
TB_disconnect.Enabled:=True;
M_add.Enabled:=True;
TB_add.Enabled:=True;
M_change.Enabled:=True;
TB_change.Enabled:=True;
M_search.Enabled:=True;
TB_search.Enabled:=True;
StatusBar.Panels[1].Text:='已经连接到服务器:'+F_login.i_server_add.Text;
end;
end;
procedure TF_main.FormCreate(Sender: TObject);
begin
//初始化
login:=False;
M_connect.Enabled:=True;
TB_connect.Enabled:=True;
M_disconnect.Enabled:=False;
TB_disconnect.Enabled:=False;
M_add.Enabled:=False;
TB_add.Enabled:=False;
M_change.Enabled:=False;
TB_change.Enabled:=False;
M_search.Enabled:=False;
TB_search.Enabled:=False;
StatusBar1.Panels[1].Text:='尚未登录服务器!请按F2登录。';
end;procedure TF_main.M_disconnectClick(Sender: TObject);
var
i:=integer;
begin
for i:=MDIChildCount-1 downto 0 do
F_main.MDIChildren[i].Close;
DataModule1.Database.Connected:=False;
FormCreate(nil);
end;procedure TF_main.M_exitClick(Sender: TObject);
begin
Close;
end;procedure TF_main.M_addClick(Sender: TObject);
begin
Application.CreateForm(TF_add,F_add);
end;procedure TF_main.M_changeClick(Sender: TObject);
begin
Application.CreateForm(TF_change,F_change);
end;procedure TF_main.M_searchClick(Sender: TObject);
begin
Application.CreateForm(TF_search,F_search);
end;procedure TF_main.M_aboutClick(Sender: TObject);
begin
AboutBox.ShowModal;
end;end.
unit login;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TF_login = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
ComboBox1: TComboBox;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
F_login: TF_login;implementationuses DataModule1, crypt, main;{$R *.dfm}procedure TF_login.Button1Click(Sender: TObject);
var
passwd, passwrd:String;
begin
With DataModule do
begin
Database.Connected:=False;
Database.Params.Values['SERVER NAME']:='Localhost:E:\Delphi\Delphi6A\ib6\server\MISDB';
Database.Connected:=True;
T_user.Filter:='ID=BGS';
T_user.Filtered:=True;
T_user.Open;
if T_user.RecordCount=1 then
begin
passwd:='biguosheng';
if length(passwd)>5 then
begin
passwd:=Copy(passwd+passwd,1,10);//统一密码长度
passwd:=Encrypt(passwd,123);//加密
end;
passwrd:=T_user['PASSWD'];
if (passwrd=passwd) and (T_user['AUTHORITY']='3') then
Form1.login:=True
else
Application.MessageBox('请重新输入密码。'+#13+'注意大小写!','密码错误',MB_OK);
end
else
Application.MessageBox('请确认用户名大小写是否正确!','无此用户',MB_OK);
T_user.Close;
end;
if Form1.login then F_login.Close;
end;end.
[Error] login.pas(58): Undeclared identifier: 'login'
[Error] login.pas(66): Undeclared identifier: 'login'
[Fatal Error] main.pas(68): Could not compile used unit 'login.pas'
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdActns, ActnList, ImgList, ComCtrls, ToolWin;type
TF_main= class(TForm)
MainMenu1: TMainMenu;
ActionList1: TActionList;
ImageList1: TImageList;
WindowCascade1: TWindowCascade;
WindowMinimizeAll1: TWindowMinimizeAll;
WindowTileHorizontal1: TWindowTileHorizontal;
WindowTileVertical1: TWindowTileVertical;
M_system: TMenuItem;
M_connect: TMenuItem;
M_disconnect: TMenuItem;
N1: TMenuItem;
M_exit: TMenuItem;
M_manager: TMenuItem;
M_add: TMenuItem;
M_change: TMenuItem;
M_search: TMenuItem;
M_window: TMenuItem;
M_cascade: TMenuItem;
M_tile_h: TMenuItem;
M_tile_v: TMenuItem;
M_mini_all: TMenuItem;
M_help: TMenuItem;
M_about: TMenuItem;
StatusBar1: TStatusBar;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
ToolButton11: TToolButton;
ToolButton12: TToolButton;
ToolButton13: TToolButton;
procedure M_connectClick(Sender: TObject);
procedure M_disconnectClick(Sender: TObject);
procedure M_exitClick(Sender: TObject);
procedure M_addClick(Sender: TObject);
procedure M_changeClick(Sender: TObject);
procedure M_searchClick(Sender: TObject);
procedure M_aboutClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
F_main: TF_main;implementation
{$R *.dfm}
uses
About, login, DataModule, add, change, search;procedure TF_main.M_connectClick(Sender: TObject);
begin
F_login.ShowModal;
if login then
begin
M_connect.Enabled:=false;
TB_connect.Enabled:=false;
M_disconnect.Enabled:=True;
TB_disconnect.Enabled:=True;
M_add.Enabled:=True;
TB_add.Enabled:=True;
M_change.Enabled:=True;
TB_change.Enabled:=True;
M_search.Enabled:=True;
TB_search.Enabled:=True;
StatusBar.Panels[1].Text:='已经连接到服务器:'+F_login.i_server_add.Text;
end;
end;
procedure TF_main.FormCreate(Sender: TObject);
begin
//初始化
login:=False;
M_connect.Enabled:=True;
TB_connect.Enabled:=True;
M_disconnect.Enabled:=False;
TB_disconnect.Enabled:=False;
M_add.Enabled:=False;
TB_add.Enabled:=False;
M_change.Enabled:=False;
TB_change.Enabled:=False;
M_search.Enabled:=False;
TB_search.Enabled:=False;
StatusBar1.Panels[1].Text:='尚未登录服务器!请按F2登录。';
end;procedure TF_main.M_disconnectClick(Sender: TObject);
var
i:=integer;
begin
for i:=MDIChildCount-1 downto 0 do
F_main.MDIChildren[i].Close;
DataModule1.Database.Connected:=False;
FormCreate(nil);
end;procedure TF_main.M_exitClick(Sender: TObject);
begin
Close;
end;procedure TF_main.M_addClick(Sender: TObject);
begin
Application.CreateForm(TF_add,F_add);
end;procedure TF_main.M_changeClick(Sender: TObject);
begin
Application.CreateForm(TF_change,F_change);
end;procedure TF_main.M_searchClick(Sender: TObject);
begin
Application.CreateForm(TF_search,F_search);
end;procedure TF_main.M_aboutClick(Sender: TObject);
begin
AboutBox.ShowModal;
end;end.
unit login;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TF_login = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
ComboBox1: TComboBox;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
F_login: TF_login;implementationuses DataModule1, crypt, main;{$R *.dfm}procedure TF_login.Button1Click(Sender: TObject);
var
passwd, passwrd:String;
begin
With DataModule do
begin
Database.Connected:=False;
Database.Params.Values['SERVER NAME']:='Localhost:E:\Delphi\Delphi6A\ib6\server\MISDB';
Database.Connected:=True;
T_user.Filter:='ID=BGS';
T_user.Filtered:=True;
T_user.Open;
if T_user.RecordCount=1 then
begin
passwd:='biguosheng';
if length(passwd)>5 then
begin
passwd:=Copy(passwd+passwd,1,10);//统一密码长度
passwd:=Encrypt(passwd,123);//加密
end;
passwrd:=T_user['PASSWD'];
if (passwrd=passwd) and (T_user['AUTHORITY']='3') then
Form1.login:=True
else
Application.MessageBox('请重新输入密码。'+#13+'注意大小写!','密码错误',MB_OK);
end
else
Application.MessageBox('请确认用户名大小写是否正确!','无此用户',MB_OK);
T_user.Close;
end;
if Form1.login then F_login.Close;
end;end.
[Error] login.pas(58): Undeclared identifier: 'login'
[Error] login.pas(66): Undeclared identifier: 'login'
[Fatal Error] main.pas(68): Could not compile used unit 'login.pas'
login是不是Form1窗体的全局变量
2,在你的工程文件里看是否存在 login.pas。若没有,就加入。
3,重新BUILD一下应该就好了。
begin
F_login.ShowModal;
if login then
begin
M_connect.Enabled:=false;
TB_connect.Enabled:=false;
M_disconnect.Enabled:=True;
TB_disconnect.Enabled:=True;
上面的login没有定义啊,
又:
if (passwrd=passwd) and (T_user['AUTHORITY']='3') then
Form1.login:=True
else
Application.MessageBox('请重新输入密码。'+#13+'注意大小写!','密码错误',MB_OK);
end
else
Application.MessageBox('请确认用户名大小写是否正确!','无此用户',MB_OK);
T_user.Close;
end;
if Form1.login then F_login.Close;
中的form1在哪里定义的?