📄 login.pas
字号:
{ *************************************************************************** }
{ }
{ PatientRunner }
{ }
{ Copyright (c) 2002-2005 IgD Software, LLC }
{ }
{ This file may be distributed and/or modified under the terms of the GNU }
{ General Public License (GPL) version 2 as published by the Free Software }
{ Foundation and appearing at http://www.gnu.org/licenses/gpl.html. }
{ }
{ *************************************************************************** }
unit Login;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TLoginForm = class(TForm)
UsernameEdit: TEdit;
PasswordEdit: TEdit;
HostnameEdit: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
DatabasenameEdit: TEdit;
ExitButton: TButton;
LoginButton: TButton;
procedure LoginButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ExitButtonClick(Sender: TObject);
private
LoginOk: boolean;
RetryCount: integer;
public
end;
var
LoginForm: TLoginForm;
implementation
{$R *.dfm}
uses Main, StrUtils, Registry;
procedure TLoginForm.LoginButtonClick(Sender: TObject);
var Save_Cursor: TCursor;
begin
HostnameEdit.Text:=TrimRight(HostnameEdit.Text);
UsernameEdit.Text:=TrimRight(UsernameEdit.Text);
PasswordEdit.Text:=TrimRight(PasswordEdit.Text);
DatabasenameEdit.Text:=TrimRight(DatabasenameEdit.Text);
if (UsernameEdit.Text='') or (HostnameEdit.Text='') or (DatabasenameEdit.Text='') then
begin
MessageDlg('You must enter a valid database, hostname, username and password to log on to PatientRunner!', mtError,
[mbOk], 0);
Exit;
end;
Save_Cursor:=Screen.Cursor;
Screen.Cursor:=crHourGlass;
with MainForm.SQLConnection do
begin
LoginPrompt := False;
//For debugging
//Params.Values['Database'] := 'patientrunner';
//Params.Values['HostName'] := 'localhost';
Params.Values['Database'] := DatabasenameEdit.Text;
Params.Values['HostName'] := HostnameEdit.Text;
Params.Values['User_Name'] := UsernameEdit.Text;
Params.Values['Password'] := PasswordEdit.Text;
try
Connected:=True;
LoginOk:=True;
except on E: Exception do
begin
inc(RetryCount);
MessageDlg('Error connecting to host: '+E.Message, mtError, [mbOk], 0);
LoginOk:=False;
end;
end;
Screen.Cursor := Save_Cursor;
if LoginOk or (RetryCount>=3) then LoginForm.Close;
end; //with
end;
procedure TLoginForm.FormCreate(Sender: TObject);
var fIni: TRegIniFile;
i: integer;
begin
Caption:=VersionInfo+' Login';
LoginOk:=False;
RetryCount:=0;
fIni:=TRegIniFile.Create('');
with fIni do
begin
RootKey:=HKEY_CURRENT_USER;
//DatabasenameEdit.Text:=ReadString('Software\PatientRunner', 'Databasename', '');
//HostnameEdit.Text:=ReadString('Software\PatientRunner', 'Hostname', '');
UsernameEdit.Text:=ReadString('Software\PatientRunner', 'Username', 'root');
Free;
end;
for i := 1 to ParamCount do
begin
//if AnsiContainsText(ParamStr(i), '/D=') then
// DatabasenameEdit.Text:=AnsiReplaceText(ParamStr(i), '/D=', '');
//if AnsiContainsText(ParamStr(i), '/S=') then
// HostnameEdit.Text:=AnsiReplaceText(ParamStr(i), '/S=', '');
if AnsiContainsText(ParamStr(i), '/L=') then
UsernameEdit.Text:=AnsiReplaceText(ParamStr(i), '/L=', '');
if AnsiContainsText(ParamStr(i), '/P=') then
PasswordEdit.Text:=AnsiReplaceText(ParamStr(i), '/P=', '');
end;
end;
procedure TLoginForm.FormClose(Sender: TObject; var Action: TCloseAction);
var fIni: TRegIniFile;
begin
if LoginOk then
begin
if DatabasenameEdit.Modified or HostnameEdit.Modified or UsernameEdit.Modified then
begin
fIni:=TRegIniFile.Create('');
with fIni do
begin
RootKey:=HKEY_CURRENT_USER;
//if DatabasenameEdit.Modified then WriteString('Software\PatientRunner', 'Databasename', DatabasenameEdit.Text);
//if HostnameEdit.Modified then WriteString('Software\PatientRunner', 'Hostname', HostnameEdit.Text);
if UsernameEdit.Modified then WriteString('Software\PatientRunner', 'Username', UsernameEdit.Text);
Free;
end;
end;
ModalResult:=mrOK
end
else
ModalResult:=mrCancel;
end;
procedure TLoginForm.ExitButtonClick(Sender: TObject);
begin
Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -