-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUFormViewFindText.pas
112 lines (97 loc) · 2.77 KB
/
UFormViewFindText.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
{$I ATStreamSearchOptions.inc} //ATStreamSearch options.
unit UFormViewFindText;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, TntStdCtrls;
type
TFormViewFindText = class(TForm)
labFind: TLabel;
btnOk: TButton;
btnCancel: TButton;
edText: TTntComboBox;
btnHelp: TButton;
boxOptions: TGroupBox;
chkWords: TCheckBox;
chkCase: TCheckBox;
chkHex: TCheckBox;
chkRegex: TCheckBox;
boxDirection: TGroupBox;
chkDirForward: TRadioButton;
chkDirBackward: TRadioButton;
boxOrigin: TGroupBox;
chkOriginCursor: TRadioButton;
chkOriginEntire: TRadioButton;
chkMLine: TCheckBox;
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure chkRegexClick(Sender: TObject);
procedure btnHelpClick(Sender: TObject);
procedure chkHexClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
BackEnabled: boolean;
HexEnabled: boolean;
RegexEnabled: boolean;
OriginEnabled: boolean;
end;
implementation
uses
ATxMsgProc, ATxSHex;
{$R *.DFM}
procedure TFormViewFindText.FormShow(Sender: TObject);
begin
{$I Lang.FormViewFindText.inc}
chkRegexClick(Self);
end;
procedure TFormViewFindText.FormCreate(Sender: TObject);
begin
BackEnabled:= true;
HexEnabled:= true;
RegexEnabled:= true;
OriginEnabled:= true;
end;
procedure TFormViewFindText.chkRegexClick(Sender: TObject);
begin
if not BackEnabled then chkDirForward.Checked:= true;
if not HexEnabled then chkHex.Checked:= false;
if not RegexEnabled then chkRegex.Checked:= false;
if not OriginEnabled then chkOriginEntire.Checked:= true;
chkDirForward.Enabled:= BackEnabled and (not chkRegex.Checked);
chkDirBackward.Enabled:= chkDirForward.Enabled;
chkOriginCursor.Enabled:= OriginEnabled;
chkOriginEntire.Enabled:= chkOriginCursor.Enabled;
chkHex.Enabled:= HexEnabled and (not chkRegex.Checked);
chkRegex.Enabled:= RegexEnabled;
chkMLine.Enabled:= chkRegex.Enabled and chkRegex.Checked;
btnHelp.Enabled:= RegexEnabled;
//Uncheck Hex and Backward options when Regex checked
if chkRegex.Checked then
begin
if chkHex.Checked then chkHex.Checked:= false;
chkDirForward.Checked:= true;
end;
end;
procedure TFormViewFindText.chkHexClick(Sender: TObject);
var
S: string;
begin
//Decode text only when form is visible,
//otherwise chkHex.Checked assignment will break text
if Visible then
if (edText.Text <> '') then
begin
if chkHex.Checked then
edText.Text:= SToHex(edText.Text)
else
if SHexToNormal(edText.Text, S) then
edText.Text:= S;
end;
end;
procedure TFormViewFindText.btnHelpClick(Sender: TObject);
begin
ShowHelp(Handle, 'RegEx.html');
end;
end.