unit denglu;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls , DB, DBTables, ADODB,XPMan;type
TEnter_Form = class(TForm)
Label1: TLabel;
Label2: TLabel;
XM_CB: TComboBox;
MM_E: TEdit;
Enter_Btn: TButton;
Exit_Btn: TButton;
procedure Enter_BtnClick(Sender: TObject);
procedure TEnter_Form.Exit_BtnClick(Sender: TObject);
procedure MM_EKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Enter_Form: TEnter_Form;implementationuses
Main_Form, DataModule, Common_Unit;{$R *.dfm}var
DL_ADOQ: TADOQuery;//**********************************************
procedure TEnter_Form.Enter_BtnClick(Sender: TObject);
var
Password:string;
begin
if XM_CB.Text='' then
begin
MessageBox(handle,'用户名不能为空,请选择或输入用户名!','错误',MB_OK or MB_ICONERROR);
exit;
end;
DL_ADOQ.Close;
DL_ADOQ.SQL.Clear;
DL_ADOQ.SQL.Add('Select Password,QXID From YH Where UserName=(:Name)');
DL_ADOQ.Parameters.ParamByName('Name').Value:=XM_CB.Text;
DL_ADOQ.Open;
if DL_ADOQ.FieldByName('Password').IsNull then Password:=''
else Password:=DL_ADOQ.FieldValues['Password'];
if Password=MM_E.Text then
begin
YH:=XM_CB.Text;
QX:=DL_ADOQ.FieldValues['QXID'];
self.Hide;
DL_ADOQ.Close;
FreeAndNil(DL_ADOQ);
with TMain_F.Create(nil) do
try
ShowModal;
finally
Free;
Application.Terminate;
end;
end
else begin
MessageBox(0,'密码错误请重新输入!','密码错误',MB_OK or MB_ICONERROR);
MM_E.Text:='';
end;
end;//**********************************************procedure TEnter_Form.MM_EKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=VK_RETURN then
begin
Enter_Btn.SetFocus;
Enter_Btn.Click;
end;
end;//**********************************************procedure TEnter_Form.FormShow(Sender: TObject);
begin
DL_ADOQ:=TADOQuery.Create(nil);
DL_ADOQ.Connection:=BYSJ_DM.TiKu_ADOC;
DL_ADOQ.SQL.Add('Select UserName From YH');
DL_ADOQ.Open;
if DL_ADOQ.RecordCount>0 then
while not DL_ADOQ.Eof do
begin
XM_CB.Items.Add(DL_ADOQ.FieldValues['UserName']);
DL_ADOQ.Next;
end; XM_CB.ItemIndex:=-1;
end;
end.
错误:[错误] denglu.pas(18): Unsatisfied forward or external declaration: 'TEnter_Form.Exit_BtnClick'
[致命错误] BYSJ.dpr(15): Could not compile used unit 'denglu.pas'
怎么改才是使登陆界面能用啊。求高手。
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls , DB, DBTables, ADODB,XPMan;type
TEnter_Form = class(TForm)
Label1: TLabel;
Label2: TLabel;
XM_CB: TComboBox;
MM_E: TEdit;
Enter_Btn: TButton;
Exit_Btn: TButton;
procedure Enter_BtnClick(Sender: TObject);
procedure TEnter_Form.Exit_BtnClick(Sender: TObject);
procedure MM_EKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Enter_Form: TEnter_Form;implementationuses
Main_Form, DataModule, Common_Unit;{$R *.dfm}var
DL_ADOQ: TADOQuery;//**********************************************
procedure TEnter_Form.Enter_BtnClick(Sender: TObject);
var
Password:string;
begin
if XM_CB.Text='' then
begin
MessageBox(handle,'用户名不能为空,请选择或输入用户名!','错误',MB_OK or MB_ICONERROR);
exit;
end;
DL_ADOQ.Close;
DL_ADOQ.SQL.Clear;
DL_ADOQ.SQL.Add('Select Password,QXID From YH Where UserName=(:Name)');
DL_ADOQ.Parameters.ParamByName('Name').Value:=XM_CB.Text;
DL_ADOQ.Open;
if DL_ADOQ.FieldByName('Password').IsNull then Password:=''
else Password:=DL_ADOQ.FieldValues['Password'];
if Password=MM_E.Text then
begin
YH:=XM_CB.Text;
QX:=DL_ADOQ.FieldValues['QXID'];
self.Hide;
DL_ADOQ.Close;
FreeAndNil(DL_ADOQ);
with TMain_F.Create(nil) do
try
ShowModal;
finally
Free;
Application.Terminate;
end;
end
else begin
MessageBox(0,'密码错误请重新输入!','密码错误',MB_OK or MB_ICONERROR);
MM_E.Text:='';
end;
end;//**********************************************procedure TEnter_Form.MM_EKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=VK_RETURN then
begin
Enter_Btn.SetFocus;
Enter_Btn.Click;
end;
end;//**********************************************procedure TEnter_Form.FormShow(Sender: TObject);
begin
DL_ADOQ:=TADOQuery.Create(nil);
DL_ADOQ.Connection:=BYSJ_DM.TiKu_ADOC;
DL_ADOQ.SQL.Add('Select UserName From YH');
DL_ADOQ.Open;
if DL_ADOQ.RecordCount>0 then
while not DL_ADOQ.Eof do
begin
XM_CB.Items.Add(DL_ADOQ.FieldValues['UserName']);
DL_ADOQ.Next;
end; XM_CB.ItemIndex:=-1;
end;
end.
错误:[错误] denglu.pas(18): Unsatisfied forward or external declaration: 'TEnter_Form.Exit_BtnClick'
[致命错误] BYSJ.dpr(15): Could not compile used unit 'denglu.pas'
怎么改才是使登陆界面能用啊。求高手。
這裡錯,改為:
procedure Exit_BtnClick(Sender: TObject);
procedure TEnter_Form.Exit_BtnClick(Sender: TObject);
你在实现部分没有实现这个过程呀~
procedure TEnter_Form.Exit_BtnClick(Sender: TObject);
begin
close;
end;
不过还是不行呢
begin
close;
end;
这一行
双击 Exit 按钮的时候 也是
[致命错误] BYSJ.dpr(15): Could not compile used unit 'denglu.pas'说明你光声明了函数没实现;建议多看点delphi的入门书籍~~~