logonform.pas

来自「一个物流公司的物流配送系统」· PAS 代码 · 共 115 行

PAS
115
字号
unit LogonForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls,IniFiles;

type
  TFrmLogon = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    ServerEdit: TEdit;
    DBEdit: TEdit;
    Label2: TLabel;
    UserEdit: TEdit;
    PassEdit: TEdit;
    p: TLabel;
    OKBtn: TButton;
    ExitBtn: TButton;
    u: TLabel;
    procedure OKBtnClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ExitBtnClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmLogon: TFrmLogon;

implementation

uses datamodule;

{$R *.dfm}

procedure TFrmLogon.OKBtnClick(Sender: TObject);
var
 ini:TIniFile;
 constr:string;
begin
 if DM.allCON.Connected then
 begin
  Close;
  ModalResult:=mrYes;
 end;
 //Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=WorkLoad;Data Source=.
 constr:='Provider=SQLOLEDB.1;';
 if UserEdit.Text = '' then
  constr:=constr+'Persist Security Info=False;Initial Catalog='+DBEdit.Text
 else
  constr:=constr+'Persist Security Info=False;Password="'+PassEdit.Text+'";User ID='+UserEdit.Text+';Initial Catalog='+DBEdit.Text;
 constr:=constr+';Data Source='+ServerEdit.Text;
 DM.allCon.Connected:=False;
 DM.allCon.ConnectionString:=constr;
 try
  DM.allCON.Connected:=True;
 except
   MessageDlg('请重新选择服务器并测试连接!', mtError, [mbOk], 0);
   exit;
 end;
 //MessageDlg('服务器连接成功!',mtInformation,MBOKCANCEL,0);
 ini:=TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini'));
 ini.WriteString('Servers','Name',ServerEdit.Text);
 ini.WriteString('Servers','DataBase',DBEdit.Text);
 ini.WriteString('Servers','User',UserEdit.Text);
 ini.WriteString('Servers','Password',PassEdit.Text);
 ini.Free;
 Close;
 ModalResult:=mrYes;
end;

procedure TFrmLogon.FormShow(Sender: TObject);
var
 ini:TIniFile;
 constr:string;
begin
 ini:=TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini'));
 ServerEdit.Text:=ini.ReadString('Servers','Name','');
 DBEdit.Text:=ini.ReadString('Servers','DataBase','');
 UserEdit.Text:=ini.ReadString('Servers','User','');
 PassEdit.Text:=ini.ReadString('Servers','Password','');
 constr:='Provider=SQLOLEDB.1;';
 if UserEdit.Text = '' then
  constr:=constr+'Persist Security Info=False;Initial Catalog='+DBEdit.Text
 else
  constr:=constr+'Persist Security Info=False;Password="'+PassEdit.Text+'";User ID='+UserEdit.Text+';Initial Catalog='+DBEdit.Text;
 constr:=constr+';Data Source='+ServerEdit.Text;
 DM.allCON.Connected:=False;
 DM.allCON.ConnectionString:=constr;
 try
   DM.allCON.Connected:=True;
 except
  on E:Exception do
  begin
   MessageDlg(PChar(E.Message)+#10+'连接失败!', mtError, [mbOk], 0);
   ini.Free;
   exit;
  end;
 end;
 ini.Free;
 okBtn.Click;
end;

procedure TFrmLogon.ExitBtnClick(Sender: TObject);
begin
 Close;
 ModalResult:=mrNo;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?