📄 ffindhex.pas
字号:
unit fFindHex;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, CorelButton;
type
TfrmFindHex = class(TForm)
lblFind: TLabel;
gpOptions: TGroupBox;
chkCase: TCheckBox;
chkCaret: TCheckBox;
cmbFind: TComboBox;
btnFind: TCorelButton;
btnCancel: TCorelButton;
procedure btnFindClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmFindHex: TfrmFindHex;
implementation
uses dMain, fDoc, UDialogSettings;
{$R *.dfm}
procedure TfrmFindHex.btnFindClick(Sender: TObject);
var
aStart: Integer;
aEnd: Integer;
pSearch: PChar;
FindPos, FindLen: Integer;
begin
SaveOpts(Self);
if dmMain.SelDoc = Nil then exit;
pSearch := PChar(cmbFind.Text);
with dmMain.SelDoc do begin
if chkCaret.Checked then
aStart := hxMain.GetCursorPos
else
aStart := 0;
aEnd := hxMain.DataSize - 1;
FindLen := StrLen(pSearch);
FindPos := hxMain.Find(pSearch, FindLen, aStart, aEnd, Not chkCase.Checked, Not chkCase.Checked);
if FindPos = -1 then begin
ShowMessage('Data not found.');
exit;
end;
hxMain.SelStart := FindPos + FindLen - 1;
hxMain.SelEnd := FindPos;
end;
close;
end;
procedure TfrmFindHex.FormShow(Sender: TObject);
begin
LoadOpts(Self);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -