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'
怎么改才是使登陆界面能用啊。求高手。

解决方案 »

  1.   

     procedure TEnter_Form.Exit_BtnClick(Sender: TObject);
    這裡錯,改為:
    procedure Exit_BtnClick(Sender: TObject);
      

  2.   

    你在type部分声明了一个过程:
          procedure TEnter_Form.Exit_BtnClick(Sender: TObject);
    你在实现部分没有实现这个过程呀~
      

  3.   

    直接加上这个吗?
    procedure TEnter_Form.Exit_BtnClick(Sender: TObject);
    begin
      close;
    end;
    不过还是不行呢
      

  4.   

    1.把光标移动到procedure TEnter_Form.Exit_BtnClick(Sender: TObject);  按下ctrl+shift+C2.把procedure TEnter_Form.Exit_BtnClick(Sender: TObject);删了
      

  5.   

    ctrl+shift+C的时候出现'='在'('前出现在TForm类
      

  6.   

    是出现在TEnter_Form  刚才打错了 
      

  7.   

    你直接加了这个以后报什么错误~procedure TEnter_Form.Exit_BtnClick(Sender: TObject);
    begin
      close;
    end;
      

  8.   

    procedure TEnter_Form.Exit_BtnClick(Sender: TObject);
    这一行
      

  9.   

    直接加也是出现   '='在'('前出现 
    双击 Exit 按钮的时候 也是
      

  10.   

    dfm文件和pas文件估计改的不匹配了。你要是不会改的话,就新建一个工程,重新来一次;出现这种:错误:[错误] denglu.pas(18): Unsatisfied forward or external declaration: 'TEnter_Form.Exit_BtnClick'
    [致命错误] BYSJ.dpr(15): Could not compile used unit 'denglu.pas'说明你光声明了函数没实现;建议多看点delphi的入门书籍~~~