⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prefs.pas

📁 详细说明:毕业论文中关于小型宾馆管理系统的详细设计毕 业论文中关于小型宾馆...一个酒店管理系统VB+Access [学生学籍管理系统(VB+Acess).zip] - !这个是刚刚编的毕业设计,可能
💻 PAS
字号:
//
// This unit provides the interface for setting preferences for the
//
//
// (c) Synet Software 2001
//
// When       Who  Why
// ---------  ---  ------------------------------------------------------------
// 2001.6.7   century Initial version
//
unit prefs;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, Buttons, Registry, ComCtrls, DbTables, CheckLst,
  FileCtrl, inifiles,
  // 3rd party,
  utils,  Db, ADODB;

//
// Record for storing preferences & settings
//
type TPrefs = record

  PREFS_CW:string;
  PREFS_CK:string;
  PREFS_GZ:string;
  PREFS_RS:string;
  PREFS_DO:string;
  PREFS_JD:string;
  PREFS_TZ:string;
  PREFS_DBSERVER:string;
  PREFS_DBUSERNAME:string;
  PREFS_DBPASSWORD:string;
  PREFS_DBDBName:String;
  PREFS_HIDE:Boolean;

end;

//
// Globals
//
var
  g_Prefs: TPrefs;                // Preferences for DCOM object
  DEF_DBSERVER:String;

//
// Global functions
//
procedure LoadSettings;
procedure SaveSettings;

function OpenSettings(var section: String): TRegIniFile;
function SettingsInitialised: Boolean;
procedure SetPreferences;
function GetCompname:string;
//
// Class (Form)
//
type
  TdlgPreferences = class(TForm)
    PageControl: TPageControl;
    tsLog: TTabSheet;
    tsConnection: TTabSheet;
    stDbServer: TStaticText;
    eDBServer: TEdit;
    stAppUsername: TStaticText;
    stAppPassword: TStaticText;
    eDBUsername: TEdit;
    eDBPassword: TEdit;
    tsTuning: TTabSheet;
    bTestCon: TBitBtn;
    sbDBServer: TSpeedButton;
    stPolling: TStaticText;
    ePollingMins: TEdit;
    Label13: TLabel;
    stPurging: TStaticText;
    ePurgingDays: TEdit;
    Label12: TLabel;
    tsWorkflow: TTabSheet;
    cbWorkflow: TGroupBox;
    stOutboundQueue: TStaticText;
    bWorkflowWizard: TBitBtn;
    StaticText3: TStaticText;
    udFolderPriority: TUpDown;
    eFolderPriority: TEdit;
    stOutboundProcess: TStaticText;
    stInboundProcess: TStaticText;
    stInboundQueue: TStaticText;
    cbInboundProcess: TComboBox;
    cbInboundQueue: TComboBox;
    cbOutboundProcess: TComboBox;
    cbOutboundQueue: TComboBox;
    bWorkflowRefresh: TBitBtn;
    bTestWorkflow: TBitBtn;
    GroupBox1: TGroupBox;
    edCw: TEdit;
    eCw: TSpeedButton;
    bCancel: TBitBtn;
    bOK: TBitBtn;
    stDbname: TStaticText;
    eDBDBName: TEdit;
    edCK: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    edGz: TEdit;
    edRs: TEdit;
    edDo: TEdit;
    OpenDialog1: TOpenDialog;
    eCK: TSpeedButton;
    eGZ: TSpeedButton;
    eRS: TSpeedButton;
    eDo: TSpeedButton;
    Label1: TLabel;
    SpeedButton1: TSpeedButton;
    edJD: TEdit;
    eJd: TSpeedButton;
    l1: TLabel;
    edTz: TEdit;
    eTz: TSpeedButton;
    Label7: TLabel;
    Bevel1: TBevel;
    cbHide: TCheckBox;
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);

    procedure sbDBServerClick(Sender: TObject);
    procedure bOKClick(Sender: TObject);
    procedure bCancelClick(Sender: TObject);
    procedure eCwClick(Sender: TObject);
    procedure bTestConClick(Sender: TObject);

  private
    OrigPrefs: TPrefs;





  end;

//var
//  dlgPreferences: TdlgPreferences;

implementation

{$R *.DFM}

//
// Open the settings file/registry
//
function OpenSettings(var section: String): TRegIniFile;
begin

     Result:=TRegIniFile.Create('\Software\xwfd\Settings');
     Result.RootKey:=HKEY_LOCAL_MACHINE;
     section:='\Software\xwfd\Settings';
end;

//
// Returns TRUE if the settings have been initialised
//
function SettingsInitialised: Boolean;
var Ini:TRegIniFile;
    sect:string;
begin
     // Open settings
     Ini:=OpenSettings(sect);

     // If there is no login username then the settings cannot have
     // been initialised yet
     if ini.ReadString(sect, 'app_username', '')='' then
        Result:=FALSE
     else
        Result:=TRUE;

     // Done
     ini.Free;
end;

//
// Save a new Fax Server password to the registry. The memory
// preferences (g_Prefs) is also updated with the new setting.
//
// NOTE: This is the password used by the Fax Server to login to
//       the  Server
//
// Args: new password (clear-text)
//

//
// Load settings into memory (g_Prefs variable)
//
procedure LoadSettings;
var Ini:TRegIniFile;
    sect:string;
    sCompname:string;

begin


     sCompname:=getcompName;

     DEF_DBSERVER:=sCompname;

     // Open settings
     Ini:=OpenSettings(sect);

     // Read settings
     g_Prefs.PREFS_DBSERVER:=ini.ReadString(sect,'dbserver',DEF_DBSERVER);
     g_Prefs.PREFS_DBUSERNAME:=ini.ReadString(sect,'dbusername','');
     g_Prefs.PREFS_DBPASSWORD:=ini.ReadString(sect,'dbpassword','');
     g_Prefs.PREFS_DBDBName:=ini.ReadString(sect,'dbDBName','');
     g_PrefS.PREFS_CW:=ini.ReadString(sect,'cw','');
     g_Prefs.PREFS_CK:=ini.ReadString(sect,'ck','');
     g_Prefs.PREFS_GZ:=ini.Readstring(sect,'gz','');
     g_Prefs.PREFS_RS:=ini.readString(sect,'rs','');
     g_Prefs.PREFS_DO:=ini.Readstring(sect,'do','');
     g_Prefs.PREFS_JD:=ini.Readstring(sect,'jd','');
     g_Prefs.PREFS_TZ:=ini.ReadString(sect,'tz','');
     g_Prefs.PREFS_HIDE:=ini.ReadBool(sect,'hide',true);
     // Done
     ini.Free;
end;

//
// Save settings (contents of g_Prefs variable)
//
procedure SaveSettings;
var Ini:TRegIniFile;
    sect:string;
begin
     // Open settings
     Ini:=OpenSettings(sect);

     // Write settings

     ini.WriteString(sect, 'dbserver',g_Prefs.PREFS_DBSERVER);
     ini.WriteString(sect, 'dbusername',g_Prefs.PREFS_DBUSERNAME);
     ini.WriteString(sect, 'dbpassword',g_Prefs.PREFS_DBPASSWORD);
     ini.WriteString(sect, 'dbDBName',g_Prefs.PREFS_DBDBName);
     ini.WriteString(sect, 'cw', g_Prefs.PREFS_CW);
     ini.WriteString(sect, 'ck', g_Prefs.PREFS_CK);
     ini.WriteString(sect, 'gz', g_Prefs.PREFS_GZ);
     ini.WriteString(sect, 'rs', g_Prefs.PREFS_RS);
     ini.WriteString(sect, 'do', g_Prefs.PREFS_DO);
     ini.WriteString(sect, 'jd', g_Prefs.PREFS_JD);
     ini.WriteString(sect, 'tz', g_Prefs.PREFS_TZ);
     ini.WriteBool(sect,'hide',g_Prefs.PREFS_HIDE);


     // Done
     ini.Free;
end;

//
// Place preference settings into form
//
procedure TdlgPreferences.FormShow(Sender: TObject);
var sect: String;
    Ini:TRegIniFile;
begin


     // Initialise
     Screen.Cursor:=crHourglass;
     PageControl.ActivePage:=tsLog;

     // Load values

     eDBServer.Text:=g_Prefs.PREFS_DBSERVER;
     eDBUsername.Text:=g_Prefs.PREFS_DBUSERNAME;
     eDBPassword.Text:=g_Prefs.PREFS_DBPASSWORD;
     eDBDBName.Text:=g_Prefs.PREFS_DBDBName;
     edCw.Text:=g_Prefs.PREFS_CW;
     edCK.Text:=g_Prefs.PREFS_CK;
     edGz.Text:=g_Prefs.PREFS_GZ;
     edRs.Text:=g_Prefs.PREFS_RS;
     edDo.Text:=g_Prefs.PREFS_DO;
     edJd.Text:=g_Prefs.PREFS_JD;
     edTz.Text:=g_Prefs.PREFS_TZ;
     cbHide.Checked:=g_Prefs.PREFS_HIDE;

     Screen.Cursor:=crDefault;

     // Check user can save to registry
     Ini:=OpenSettings(sect);
     try
        ini.WriteString(sect, 'regcheck', 'OK');
        ini.Free;
     except
        Ini.Free;
        MessageDlg('你的操作系统不能存储这些数据,请换个用户名登陆这台机器', mtWarning, [mbCancel], 0);
     end;


     // Save the original settings so we can tell if something has changed
     SaveSettings;
     OrigPrefs:=g_Prefs;

end;

//
// Load preferences from the registry
//
procedure TdlgPreferences.FormCreate(Sender: TObject);
begin
     LoadSettings;
end;

//


//
// Check filenames are not the same



// Choose wants to use a dialog box to select the Application Server
// and Fax Server
procedure TdlgPreferences.sbDBServerClick(Sender: TObject);
var caption, server: String;
begin
     // Coming from a valid button?
     if Sender=sbDBServer then begin
        caption:='请选择一个数据库服务器';
        Sender:=eDBserver;
     end else Exit;

     // Display dialog box
     server:=ChooseComputer(self.Handle, caption);
     if server='' then Exit;

     // Update preferences
     (Sender as TEdit).Text:=server;
     (Sender as TEdit).Modified:=TRUE;
end;


// Preferences & settings
procedure SetPreferences;
var dlgPrefs: TdlgPreferences;
begin
     // Display it
     Forms.Application.CreateForm(TdlgPreferences, dlgPrefs);
     try
        try
           dlgPrefs.ShowModal;
        except
           // Ignore
        end;
     finally
        dlgPrefs.Free;
        dlgPrefs:=nil;
     end;
end;


// Update service status
procedure TdlgPreferences.bOKClick(Sender: TObject);
begin

    if MessageDlg('退出前需要保存吗?', mtConfirmation, [mbYes, mbNo], 0)=mrNo then close
    else begin
      try
        g_Prefs.PREFS_CW:=edCw.Text;
        g_Prefs.PREFS_CK:=edCK.Text;
        g_Prefs.PREFS_GZ:=edGz.Text;
        g_Prefs.Prefs_RS:=edRs.Text;
        g_Prefs.Prefs_Do:=edDo.Text;
        g_Prefs.PREFS_JD:=edJd.Text;
        g_Prefs.PREFS_TZ:=edTz.Text;
        g_Prefs.PREFS_HIDE:=cbHide.Checked;
        g_Prefs.PREFS_DBSERVER:=eDbServer.Text;
        g_Prefs.PREFS_DBUSERNAME:=eDBUsername.Text;
        g_Prefs.PREFS_DBPASSWORD:=eDBPassword.Text;
        g_Prefs.PREFS_DBDBName:=eDBDBName.Text;
        SaveSettings;
        Close;
     except
        MessageDlg('不能保存信息,请检查你填入的值.',
           mtWarning, [mbCancel], 0);
        Exit;
     end;

    end;




end;

procedure TdlgPreferences.bCancelClick(Sender: TObject);
begin
 Close;
end;

procedure TdlgPreferences.eCwClick(Sender: TObject);
var filename: String;
begin

 if OpenDialog1.Execute then begin
     if Sender=eCw then begin
        Sender:=edCW;
     end else if Sender=eCK then begin
        Sender:=edCK;
     end else if Sender=eGz then begin
        Sender:=edGz;
     end else if Sender=eRs then begin
        Sender:=edRs;
     end else if Sender=eDo then begin
        Sender:=edDo;
     end else if Sender=eJd then begin
        Sender:=edJd;
     end else if Sender=etz then begin
        Sender:=edtz;
     end else Exit;

     filename:=Opendialog1.FileName;
     (Sender as TEdit).Text:=filename;
     end;
 end;




function GetCompname:string;
var size:Cardinal;
    name:Pchar;

begin
     Size:=255;
     Getmem(Name,size);
     GetComputerName(Name,size);
     Result:=String(Name);
     FreeMem(Name);
end;

procedure TdlgPreferences.bTestConClick(Sender: TObject);
var ADO:TADOConnection;
begin

   ADO:= TADOConnection.Create(self);
   Try
      ADO.LoginPrompt:=FALSE;
      ADO.ConnectionString:='Provider=SQLOLEDB.1;'+
                                  'Persist Security Info=False;'+
                                  'Initial Catalog='+eDBDBName.Text+';'+
                                  'Data Source='+eDBServer.Text;

      ADO.Open(eDBUsername.Text,eDBPassword.Text);
      ADO.Connected:=TRUE;
      if not ADO.Connected then  begin
         Messagedlg('测试失败!',mtWarning,[mbCancel],0);
         Exit;
      end;
   except
      Messagedlg('测试失败!',mtWarning,[mbCancel],0);
      ADO.free;
      Exit;
   end;
      //ADO.Execute(SQLstmt,commandtype,ExecuteOptions);
   Messagedlg('测试成功!',mtInformation,[mbCancel],0);
   Ado.Free;

end;
end.

⌨️ 快捷键说明

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