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

📄 uformviewoptions.pas

📁 支持版本:Delphi 5-2009, C++Builder 5-2009 ATViewer特性: Text, Binary, Hex, Unicode:所有文件
💻 PAS
📖 第 1 页 / 共 2 页
字号:
{$I ATViewerOptions.inc}
{$I-}

unit UFormViewOptions;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls, ATxToolbarList, ExtCtrls, TntDialogs;

type
  TFormProc = procedure of object;

type
  TFormViewOptions = class(TForm)
    btnOk: TButton;
    btnCancel: TButton;
    FontDialog1: TFontDialog;
    ColorDialog1: TColorDialog;
    PageControl1: TPageControl;
    tabIntf: TTabSheet;
    tabShortcuts: TTabSheet;
    boxIntf: TGroupBox;
    labLang: TLabel;
    edLang: TComboBox;
    chkShell: TCheckBox;
    chkToolbar: TCheckBox;
    tabMisc: TTabSheet;
    ListKeys: TListView;
    HotKey1: THotKey;
    labShortcut: TLabel;
    btnKeyOk: TButton;
    chkBorder: TCheckBox;
    chkSingleInst: TCheckBox;
    chkMenu: TCheckBox;
    chkStatusBar: TCheckBox;
    chkNav: TCheckBox;
    boxMisc: TGroupBox;
    chkResolveLinks: TCheckBox;
    chkShowHidden: TCheckBox;
    boxHistory: TGroupBox;
    chkSaveFolder: TCheckBox;
    chkSavePosition: TCheckBox;
    chkSaveRecents: TCheckBox;
    chkMenuIcons: TCheckBox;
    tabText: TTabSheet;
    tabMedia: TTabSheet;
    boxText: TGroupBox;
    labTextFixedWidth: TLabel;
    labTabSize: TLabel;
    labTextLength: TLabel;
    edTextWidth: TEdit;
    chkTextWidthFit: TCheckBox;
    chkTextAutoCopy: TCheckBox;
    edTextTabSize: TEdit;
    edTextLength: TEdit;
    boxMedia: TGroupBox;
    labMediaPlayCount: TLabel;
    labMediaMode: TLabel;
    chkMediaStart: TCheckBox;
    edMediaPlayCount: TEdit;
    edMediaMode: TComboBox;
    boxTextFont: TGroupBox;
    labTextFont1: TLabel;
    btnTextFont: TButton;
    labTextFontShow: TLabel;
    labTextColors: TLabel;
    btnTextColor: TButton;
    btnTextColorHexBack: TButton;
    btnTextColorHex1: TButton;
    btnTextColorHex2: TButton;
    btnTextColorGutter: TButton;
    chkTextOemSpecial: TCheckBox;
    btnTextFontOEM: TButton;
    labTextFontShowOEM: TLabel;
    boxImage: TGroupBox;
    chkImageResample: TCheckBox;
    chkImageTransp: TCheckBox;
    labColorImage: TLabel;
    btnMediaColor: TButton;
    btnMediaColorLabel: TButton;
    btnMediaColorLabelErr: TButton;
    boxTextSearch: TGroupBox;
    edSearchIndent: TEdit;
    labSearchIndent: TLabel;
    chkSearchSel: TCheckBox;
    boxTextReload: TGroupBox;
    chkTextReload: TCheckBox;
    chkTextReloadBeep: TCheckBox;
    chkTextReloadTail: TCheckBox;
    chkSearchNoMsg: TCheckBox;
    chkSaveSearch: TCheckBox;
    btnClearRecent: TButton;
    btnClearSearch: TButton;
    FontDialog2: TFontDialog;
    boxPrint: TGroupBox;
    labFontFooter: TLabel;
    btnFontFooter: TButton;
    labFooterFontShow: TLabel;
    edIcon: TComboBox;
    labIcon: TLabel;
    Panel1: TPanel;
    Image1: TImage;
    chkMediaLoop: TCheckBox;
    chkTextWrap: TCheckBox;
    chkTextNonPrint: TCheckBox;
    chkImageFit: TCheckBox;
    chkImageFitBig: TCheckBox;
    chkImageCenter: TCheckBox;
    tabFile: TTabSheet;
    boxExt: TGroupBox;
    labText: TLabel;
    labImages: TLabel;
    labMedia: TLabel;
    labInternet: TLabel;
    labRTF: TLabel;
    edText: TEdit;
    edImages: TEdit;
    edMedia: TEdit;
    edInternet: TEdit;
    edRTF: TEdit;
    btnTextOptions: TButton;
    btnImageOptions: TButton;
    btnGutterOptions: TButton;
    labViewerTitle: TLabel;
    labViewerMode: TLabel;
    edViewerTitle: TComboBox;
    edViewerMode: TComboBox;
    chkImageFitWindow: TCheckBox;
    chkImageLabel: TCheckBox;
    boxInternet: TGroupBox;
    chkWebAcceptAll: TCheckBox;
    chkWebOffline: TCheckBox;
    SaveDialog1: TSaveDialog;
    chkTextURLs: TCheckBox;
    btnTextColorURL: TButton;
    procedure btnTextFontClick(Sender: TObject);
    procedure btnTextColorClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure btnTextOptionsClick(Sender: TObject);
    procedure chkTextWidthFitClick(Sender: TObject);
    procedure btnMediaColorClick(Sender: TObject);
    procedure btnTextColorHex1Click(Sender: TObject);
    procedure btnTextColorHex2Click(Sender: TObject);
    procedure edLangChange(Sender: TObject);
    procedure btnTextFontOEMClick(Sender: TObject);
    procedure ListKeysSelectItem(Sender: TObject; Item: TListItem;
      Selected: Boolean);
    procedure btnKeyOkClick(Sender: TObject);
    procedure chkTextReloadClick(Sender: TObject);
    procedure btnTextColorHexBackClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure edMediaModeChange(Sender: TObject);
    procedure btnImageOptionsClick(Sender: TObject);
    procedure chkTextOemSpecialClick(Sender: TObject);
    procedure btnTextColorGutterClick(Sender: TObject);
    procedure btnMediaColorLabelClick(Sender: TObject);
    procedure btnMediaColorLabelErrClick(Sender: TObject);
    procedure btnClearRecentClick(Sender: TObject);
    procedure btnClearSearchClick(Sender: TObject);
    procedure btnFontFooterClick(Sender: TObject);
    procedure edIconChange(Sender: TObject);
    procedure btnGutterOptionsClick(Sender: TObject);
    procedure btnTextColorURLClick(Sender: TObject);
  private
    { Private declarations }
    procedure FSaveIconsNames(const FileName: string);

  public
    { Public declarations }
    ffImgList: TImageList; //Original (not current!) ImageList
    ffToolbar: TToolbarList; //Toolbar object

    ffTextFontName: string;
    ffTextFontSize: integer;
    ffTextFontColor: TColor;
    ffTextFontStyle: TFontStyles;
    ffTextFontCharset: TFontCharset;

    ffTextFontOEMName: string;
    ffTextFontOEMSize: integer;
    ffTextFontOEMColor: TColor;
    ffTextFontOEMStyle: TFontStyles;
    ffTextFontOEMCharset: TFontCharset;

    ffFooterFontName: string;
    ffFooterFontSize: integer;
    ffFooterFontColor: TColor;
    ffFooterFontStyle: TFontStyles;
    ffFooterFontCharset: TFontCharset;

    ffTextBackColor: TColor;
    ffTextHexColor1: TColor;
    ffTextHexColor2: TColor;
    ffTextHexColorBack: TColor;
    ffTextGutterColor: TColor;
    ffTextUrlColor: TColor;
    ffTextDetect: boolean;
    ffTextDetectOEM: boolean;
    ffTextDetectSize: DWORD;
    ffTextDetectLimit: DWORD;
    ffMediaColor: TColor;
    ffMediaColorLabel: TColor;
    ffMediaColorLabelErr: TColor;
    ffOptLang: string;
    ffOptIcon: string;
    
    ffIViewEnabled: boolean;
    ffIViewExeName: string;
    ffIViewExtList: string;
    ffIViewHighPriority: boolean;
    ffIJLEnabled: boolean;
    ffIJLExtList: string;

    ffShowGutter: boolean;
    ffShowLines: boolean;
    ffLinesBufSize: integer;
    ffLinesCount: integer;
    ffLinesExtUse: boolean;
    ffLinesExtList: string;

    ffGutterFontName: string;
    ffGutterFontSize: integer;
    ffGutterFontColor: TColor;
    ffGutterFontStyle: TFontStyles;
    ffGutterFontCharset: TFontCharSet;

    ffClearRecent: TFormProc;
    ffClearSearch: TFormProc;
  end;

implementation

uses
  ATViewer, ATxSProc, ATxParamStr,
  ATxMsgProc, ATxMsg,
  ATxUtils, ATxIconsProc,
  Menus,
  UFormViewOptionsText,
  UFormViewOptionsImages,
  UFormViewOptionsGutter;

{$R *.DFM}

procedure TFormViewOptions.btnTextFontClick(Sender: TObject);
begin
  with FontDialog1 do
    begin
    Font.Name:= ffTextFontName;
    Font.Size:= ffTextFontSize;
    Font.Color:= ffTextFontColor;
    Font.Style:= ffTextFontStyle;
    Font.CharSet:= ffTextFontCharset;
    if Execute then
      begin
      ffTextFontName:= Font.Name;
      ffTextFontSize:= Font.Size;
      ffTextFontColor:= Font.Color;
      ffTextFontStyle:= Font.Style;
      ffTextFontCharset:= Font.CharSet;
      labTextFontShow.Caption:= ffTextFontName + ', ' + IntToStr(ffTextFontSize);
      end;
    end;
end;

procedure TFormViewOptions.btnTextFontOEMClick(Sender: TObject);
begin
  with FontDialog1 do
    begin
    Font.Name:= ffTextFontOEMName;
    Font.Size:= ffTextFontOEMSize;
    Font.Color:= ffTextFontOEMColor;
    Font.Style:= ffTextFontOEMStyle;
    Font.CharSet:= ffTextFontOEMCharset;
    if Execute then
      begin
      ffTextFontOEMName:= Font.Name;
      ffTextFontOEMSize:= Font.Size;
      ffTextFontOEMColor:= Font.Color;
      ffTextFontOEMStyle:= Font.Style;
      ffTextFontOEMCharset:= Font.CharSet;
      labTextFontShowOEM.Caption:= ffTextFontOEMName + ', ' + IntToStr(ffTextFontOEMSize);
      end;
    end;
end;

procedure TFormViewOptions.btnTextColorClick(Sender: TObject);
begin
  with ColorDialog1 do
    begin
    Color:= ffTextBackColor;
    if Execute then
      ffTextBackColor:= Color;
    end;
end;

procedure TFormViewOptions.btnTextColorHexBackClick(Sender: TObject);
begin
  with ColorDialog1 do
    begin
    Color:= ffTextHexColorBack;
    if Execute then
      ffTextHexColorBack:= Color;
    end;
end;

procedure TFormViewOptions.btnTextColorHex1Click(Sender: TObject);
begin
  with ColorDialog1 do
    begin
    Color:= ffTextHexColor1;
    if Execute then
      ffTextHexColor1:= Color;
    end;
end;

procedure TFormViewOptions.btnTextColorHex2Click(Sender: TObject);
begin
  with ColorDialog1 do
    begin
    Color:= ffTextHexColor2;
    if Execute then
      ffTextHexColor2:= Color;
    end;
end;

procedure TFormViewOptions.btnTextColorGutterClick(Sender: TObject);
begin
  with ColorDialog1 do
    begin
    Color:= ffTextGutterColor;
    if Execute then
      ffTextGutterColor:= Color;
    end;
end;

procedure TFormViewOptions.btnTextColorURLClick(Sender: TObject);
begin
  with ColorDialog1 do
    begin
    Color:= ffTextUrlColor;
    if Execute then
      ffTextUrlColor:= Color;
    end;
end;


procedure TFormViewOptions.FormShow(Sender: TObject);
var
  h: THandle;
  fdA: TWin32FindDataA;
  fdW: TWin32FindDataW;
  Mask: WideString;
  S: string;
  n: integer;
  Rec: PToolbarButtonRec;
begin
  //Init captions
  {$I Lang.FormViewOptions.inc}

  //Update controls
  labTextFontShow.Caption:= ffTextFontName + ', ' + IntToStr(ffTextFontSize);
  labTextFontShowOEM.Caption:= ffTextFontOEMName + ', ' + IntToStr(ffTextFontOEMSize);
  labFooterFontShow.Caption:= ffFooterFontName + ', ' + IntToStr(ffFooterFontSize);

  chkTextWidthFitClick(Self);
  chkTextOemSpecialClick(Self);
  chkTextReloadClick(Self);
  edMediaModeChange(Self);

  //List languages
  Mask:= SLangFN('*');
  if Win32Platform=VER_PLATFORM_WIN32_NT
    then h:= FindFirstFileW(PWChar(Mask), fdW)
    else h:= FindFirstFileA(PAnsiChar(AnsiString(Mask)), fdA);

  if h<>INVALID_HANDLE_VALUE then
    with edLang do
      try
        Items.BeginUpdate;
        Items.Clear;

        repeat
          if Win32Platform=VER_PLATFORM_WIN32_NT
            then S:= fdW.cFileName
            else S:= fdA.cFileName;
          S:= ChangeFileExt(S, '');
          Items.Append(S);

          if Win32Platform=VER_PLATFORM_WIN32_NT
            then begin if not FindNextFileW(h, fdW) then Break end
            else begin if not FindNextFileA(h, fdA) then Break end;
        until false;

⌨️ 快捷键说明

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