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

📄 uformreloc.pas

📁 支持版本:Delphi 5-2009, C++Builder 5-2009 ATViewer特性: Text, Binary, Hex, Unicode:所有文件
💻 PAS
字号:
unit UFormReloc;

interface

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

type
  TFormReloc = class(TForm)
    btnOK: TButton;
    btnCancel: TButton;
    GroupBox1: TGroupBox;
    chkAppData: TRadioButton;
    chkDefault: TRadioButton;
    chkCustom: TRadioButton;
    btnPath: TButton;
    edPath: TEdit;
    GroupBox2: TGroupBox;
    Label2: TLabel;
    Label3: TLabel;
    chkAllUsers: TCheckBox;
    Bevel1: TBevel;
    Label1: TLabel;
    procedure btnPathClick(Sender: TObject);
    procedure chkDefaultClick(Sender: TObject);
    procedure btnOKClick(Sender: TObject);
    procedure btnCancelClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    FFolder: AnsiString;
    procedure ReadParams;
    procedure SaveParams;
  public
    { Public declarations }
  end;

var
  FormReloc: TFormReloc;

implementation

uses
  ATxSProc, ATxFProc, ATxRegistry, ATxUtils,
  FileCtrl;

{$R *.DFM}

const
  cRegKey = 'Software\UniversalViewer';
  cRegValue = 'ConfigurationFolder';
  cAppData = '%AppData%\ATViewer';

procedure TFormReloc.ReadParams;
begin
  FFolder:= 
    GetRegKeyStr(HKEY_CURRENT_USER, cRegKey, cRegValue,
    GetRegKeyStr(HKEY_LOCAL_MACHINE, cRegKey, cRegValue, ''));
end;

procedure TFormReloc.SaveParams;
begin
  SetRegKeyStr(HKEY_CURRENT_USER, cRegKey, cRegValue, FFolder);
  if chkAllUsers.Checked then
    SetRegKeyStr(HKEY_LOCAL_MACHINE, cRegKey, cRegValue, FFolder);
end;

procedure TFormReloc.btnPathClick(Sender: TObject);
var
  Path: AnsiString;
begin
  Path:= '';
  if SelectDirectory('', '', Path) then
    edPath.Text:= Path;
end;

procedure TFormReloc.chkDefaultClick(Sender: TObject);
begin
  edPath.Enabled:= chkCustom.Checked;
  btnPath.Enabled:= chkCustom.Checked;
end;

procedure TFormReloc.btnOKClick(Sender: TObject);
begin
  if chkDefault.Checked then FFolder:= '' else
   if chkAppData.Checked then FFolder:= cAppData else
    if chkCustom.Checked then
      begin
      FFolder:= edPath.Text;
      if not IsDirExist(SExpandVars(FFolder)) then
        begin Application.MessageBox('Selected folder does not exist', PChar(Caption), MB_OK or MB_ICONERROR); Exit end;
      end;

  SaveParams;
  Close;
end;

procedure TFormReloc.btnCancelClick(Sender: TObject);
begin
  Close;
end;

procedure TFormReloc.FormCreate(Sender: TObject);
begin
  ReadParams;
  chkDefault.Checked:= FFolder='';
  chkAppData.Checked:= StrIComp(PChar(FFolder), cAppData)=0;
  chkCustom.Checked:= (not chkDefault.Checked) and (not chkAppData.Checked);
  if chkCustom.Checked then
    edPath.Text:= FFolder;

  chkDefaultClick(Self);
  chkAppData.Enabled:= Pos('%', SExpandVars('%AppData%'))=0;
end;

end.

⌨️ 快捷键说明

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