grepsearchdlg.pas

来自「大家是不是为不知道如何在VB学到绝地程序」· PAS 代码 · 共 158 行

PAS
158
字号
Unit GrepSearchDlg;

Interface

//! StH: This unit has been completely prepared for localization
//! StH: This unit is fully compatible with C++Builder

Uses
  Windows,
  Messages,
  SysUtils,
  Classes,
  Graphics,
  Controls,
  Forms,
  Dialogs,
  StdCtrls,
  Buttons,
  Registry,
  GrepResultsDlg,
  MRUCombo,
  vgNLS,
  EditModule,
  MainEdit,
  Mask,
  ToolEdit,
  Placemnt;

Type
  TfrmGrepSearch = Class(TForm)
    lblFind: TLabel;
    cbText: TMRUComboBox;
    gbxOptions: TGroupBox;
    chkNoCase: TCheckBox;
    chkNoComments: TCheckBox;
    gbxWhere: TGroupBox;
    rbAllFiles: TRadioButton;
    rbOpenFiles: TRadioButton;
    rbDirectories: TRadioButton;
    gbxDirectories: TGroupBox;
    lblDirectory: TLabel;
    lblMasks: TLabel;
    cbMasks: TComboBox;
    chkInclude: TCheckBox;
    BtnOK: TButton;
    BtnCancel: TButton;
    chkWholeWord: TCheckBox;
    rbCurrentOnly: TRadioButton;
    BtnHelp: TButton;
    sbVCL: TSpeedButton;
    sbRTL: TSpeedButton;
    chkRegEx: TCheckBox;
    chkGrepANSI: TCheckBox;
    cbDirectory: TDirectoryEdit;
    FormStorage: TFormStorage;
    Procedure FormCreate(Sender: TObject);
    Procedure FormShow(Sender: TObject);
    Procedure rbDirectoriesClick(Sender: TObject);
    Procedure sbVCLClick(Sender: TObject);
    Procedure sbRTLClick(Sender: TObject);
    Procedure FormCloseQuery(Sender: TObject; Var CanClose: Boolean);
  Private
    { Private declarations }
    tran: TvgTranslator;
    Procedure DirEnable(New: Boolean);
  Public
    { Public declarations }
  End;

Implementation

{$R *.DFM}

Uses
  Menus,
  AppUtils;

Procedure TfrmGrepSearch.FormCreate(Sender: TObject);
Var
  I: Integer;
Begin
  tran := TvgTranslator.Create(Self);
  FormStorage.IniFileName := ExtractFilePath(Application.ExeName) + GetDefaultIniName;
  BtnHelp.Visible := False;
  rbCurrentOnly.Enabled := frmJediEdit.CurrentEditor <> Nil;
  rbAllFiles.Enabled := False; //Allfiles in the Project
  rbOpenFiles.Enabled := rbCurrentOnly.Enabled; //Current Open Files in Editor
  rbDirectories.Checked := True;
  DirEnable(rbDirectories.Checked);
  With TFilterList.Create Do Try
    Filters := frmJediEdit.OpenFileDialog.Filter;
    cbMasks.Items.Clear;
    For I := 0 To Count - 2 Do
      cbMasks.Items.Add(Extension[i]);
  Finally
    Free;
  End; //try
  cbText.IniSection := 'Grep_Text';
  cbText.IniFile := FormStorage.IniFileName;
End;

Procedure TfrmGrepSearch.DirEnable(New: Boolean);
Begin
  cbDirectory.Enabled := New;
  cbMasks.Enabled := New;
  chkInclude.Enabled := New;
  sbVCL.Enabled := New;
  sbRTL.Enabled := New;
  If Not New Then Begin
    cbDirectory.Color := clBtnFace;
    cbMasks.Color := clBtnFace;
  End
  Else Begin
    cbDirectory.Color := clWindow;
    cbMasks.Color := clWindow;
  End
End;

Procedure TfrmGrepSearch.rbDirectoriesClick(Sender: TObject);
Begin
  DirEnable(rbDirectories.Checked);
End;

Procedure TfrmGrepSearch.sbVCLClick(Sender: TObject);
Begin
  cbDirectory.Text := VCLPath;
End;

Procedure TfrmGrepSearch.sbRTLClick(Sender: TObject);
Var
  Path: String;
  SubPos: Integer;
Begin
  Path := VCLPath;
  SubPos := Pos('VCL', Path);
  If SubPos > 0 Then Begin
    Delete(Path, SubPos, 3);
    Insert('RTL', Path, SubPos);
    cbDirectory.Text := Path;
  End;
End;

Procedure TfrmGrepSearch.FormShow(Sender: TObject);
Begin
  tran.LanguageFile := CurrentLan;
  tran.Translate;
End;

Procedure TfrmGrepSearch.FormCloseQuery(Sender: TObject;
  Var CanClose: Boolean);
Begin
  cbText.WriteList;
End;

Initialization
End.

⌨️ 快捷键说明

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