?? ffindtext.pas
字號:
unit fFindText;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, iniFiles, synEdit, CorelButton;
type
TfrmFindText = class(TForm)
lblFind: TLabel;
gpOptions: TGroupBox;
chkMatch: TCheckBox;
chkCase: TCheckBox;
gbDir: TGroupBox;
cmbFind: TComboBox;
chkCaret: TCheckBox;
chkSel: TCheckBox;
chkWrap: TCheckBox;
btnFind: TCorelButton;
btnCancel: TCorelButton;
rdDown: TRadioButton;
rdUp: TRadioButton;
procedure btnFindClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure cmbFindKeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure cmbFindEnter(Sender: TObject);
private
function GetSearchBackwards: boolean;
function GetSearchCaseSensitive: boolean;
function GetSearchFromCursor: boolean;
function GetSearchInSelection: boolean;
function GetSearchText: string;
function GetSearchTextHistory: string;
function GetSearchWholeWords: boolean;
function GetWrapAround: Boolean;
procedure SetSearchBackwards(Value: boolean);
procedure SetSearchCaseSensitive(Value: boolean);
procedure SetSearchFromCursor(Value: boolean);
procedure SetSearchInSelection(Value: boolean);
procedure SetSearchText(Value: string);
procedure SetSearchTextHistory(Value: string);
procedure SetSearchWholeWords(Value: boolean);
procedure SetWrapAround(Value: Boolean);
public
property SearchBackwards: boolean read GetSearchBackwards
write SetSearchBackwards;
property SearchCaseSensitive: boolean read GetSearchCaseSensitive
write SetSearchCaseSensitive;
property SearchFromCursor: boolean read GetSearchFromCursor
write SetSearchFromCursor;
property SearchInSelectionOnly: boolean read GetSearchInSelection
write SetSearchInSelection;
property SearchText: string read GetSearchText write SetSearchText;
property SearchTextHistory: string read GetSearchTextHistory
write SetSearchTextHistory;
property SearchWholeWords: boolean read GetSearchWholeWords
write SetSearchWholeWords;
property WrapAround: boolean read GetWrapAround write SetWrapAround;
{ Public declarations }
end;
var
frmFindText: TfrmFindText;
implementation
uses fMain, fDoc,UDialogSettings;
{$R *.dfm}
function TfrmFindText.GetSearchBackwards: boolean;
begin
Result := rdUp.Checked = True;
end;
function TfrmFindText.GetWrapAround: Boolean;
begin
Result := chkWrap.Checked;
end;
procedure TfrmFindText.SetWrapAround(Value: Boolean);
begin
chkWrap.Checked := Value;
end;
function TfrmFindText.GetSearchCaseSensitive: boolean;
begin
Result := chkCase.Checked;
end;
function TfrmFindText.GetSearchFromCursor: boolean;
begin
Result := chkCaret.Checked;
end;
function TfrmFindText.GetSearchInSelection: boolean;
begin
Result := chkSel.Checked;
end;
function TfrmFindText.GetSearchText: string;
begin
Result := cmbFind.Text;
end;
function TfrmFindText.GetSearchTextHistory: string;
var
i: integer;
begin
Result := '';
for i := 0 to cmbFind.Items.Count - 1 do begin
if i >= 10 then
break;
if i > 0 then
Result := Result + #13#10;
Result := Result + cmbFind.Items[i];
end;
end;
function TfrmFindText.GetSearchWholeWords: boolean;
begin
Result := chkMatch.Checked;
end;
procedure TfrmFindText.SetSearchBackwards(Value: boolean);
begin
rdUp.Checked := Value;
end;
procedure TfrmFindText.SetSearchCaseSensitive(Value: boolean);
begin
chkCase.Checked := Value;
end;
procedure TfrmFindText.SetSearchFromCursor(Value: boolean);
begin
chkCaret.Checked := Value;
end;
procedure TfrmFindText.SetSearchInSelection(Value: boolean);
begin
chkSel.Checked := Value;
end;
procedure TfrmFindText.SetSearchText(Value: string);
begin
cmbFind.Text := Value;
end;
procedure TfrmFindText.SetSearchTextHistory(Value: string);
begin
cmbFind.Items.Text := Value;
end;
procedure TfrmFindText.SetSearchWholeWords(Value: boolean);
begin
chkMatch.Checked := Value;
end;
procedure TfrmFindText.btnFindClick(Sender: TObject);
begin
{ flags := [];
if chkMatch.Checked then
Include(flags, ssoWholeWord);
if chkCase.Checked then
Include(flags, ssoMatchCase);
if not chkCaret.Checked then
Include(flags, ssoEntireScope);
if chkSel.Checked then
Include(flags, ssoSelectedOnly);
if (rdUp.Checked) then
Include(flags, ssoBackwards);
cmbFind.Items.Add(cmbFind.Text);
TfrmDoc(frmMain.ActiveMDIChild).findFlags := flags;
Exclude(TfrmDoc(frmMain.ActiveMDIChild).findFlags, ssoEntireScope);
TfrmDoc(frmMain.ActiveMDIChild).findString := cmbFind.Text;
TfrmDoc(frmMain.ActiveMDIChild).sciMain.SearchReplace(cmbFind.Text, '', flags); //.FindText(flags, chkWrap.Checked, PChar(cmbFind.Text), Self.rdUp.Checked);
SaveOpts(Self, 'Find');
close;}
SaveOpts(Self);
end;
procedure TfrmFindText.FormShow(Sender: TObject);
begin
LoadOpts(Self);
end;
procedure TfrmFindText.cmbFindKeyPress(Sender: TObject; var Key: Char);
begin
if Key = Char(27) then close;
end;
procedure TfrmFindText.FormCreate(Sender: TObject);
begin
if FileExists(ExtractFilePath(Application.ExeName) + 'ini\find.dat') = False then
cmbFind.Items.SaveToFile(ExtractFilePath(Application.ExeName) + 'ini\find.dat');
cmbFind.Items.LoadFromFile(ExtractFilePath(Application.ExeName) + 'ini\find.dat')
end;
procedure TfrmFindText.cmbFindEnter(Sender: TObject);
begin
cmbFind.SelStart := 0;
cmbFind.SelLength := Length(cmbFind.Text);
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -