回 帖 发 新 帖 刷新版面

主题:如何在打开程序前增加一个登陆控制

我用DELPHI写了一个小程序,程序已经写完好,但这个程序打开就能用,我想增加一个用户登陆界面,如果没有用户登陆权限就不可以使用这个程序,请大虾会帮帮忙说 一下应该如处理,请详细说一下,最好加一个实例谢谢。如有会的可以加我的QQ:46706727

回复列表 (共2个回复)

沙发

unit logon;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls,db, DBTables;

type
  Tlogonform = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    BitBtn1: TBitBtn;
    procedure BitBtn1Click(Sender: TObject);
 private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  logonform: Tlogonform;
   i:integer;
implementation
uses main;

{$R *.dfm}

procedure Tlogonform.BitBtn1Click(Sender: TObject);
var
  table1:TTable;
begin
   table1:=TTable.Create(self);
   Table1.DatabaseName:='xxgl';
   Table1.TableName:='operator.db';
   Table1.Open;
   Table1.SetKey;
   table1.FieldByName('name').asstring:=trim(edit1.text);
   //验证用户名和密码的正确性
   if (Table1.GoTokey) and (Table1.FieldByName('password').AsString=edit2.text) then
   //验证成功
   begin
        username:=edit1.text;
        password:=edit2.text;
        right:=Table1.fieldByName('right').asstring;
        Table1.Close;
        close;
   end
   else
   //验证失败
   begin
      Table1.Close;
      Application.MessageBox('用户名或密码输入错误,请检查再重试!','系统提醒',mb_ok);
      edit1.text:='';
      edit2.Text:='';
      edit1.SetFocus;
      i:=i-1;
      // 错误输入次数已达3次,系统给予提示并自动关闭
      if i=0 then
         begin
            messagedlg('错误输入次数已达3次,系统将会自动关闭!',mtwarning,[mbok],0);
            application.Terminate;
          end;
     end
end;

end

板凳

新添加个窗体,在Project1中的Application.Initialize后面加入; 
  form2:=Tform2.Create(Application);
  form2.ShowModal;
  form2.Free;
你可以在form2中写入你想要的内容

我来回复

您尚未登录,请登录后再回复。点此登录或注册