123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- unit _frmSearch;
- interface
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls, ExtCtrls;
- type
- TfrmSearch = class(TForm)
- Label1: TLabel;
- cbSearchText: TComboBox;
- rgSearchDirection: TRadioGroup;
- gbSearchOptions: TGroupBox;
- cbSearchCaseSensitive: TCheckBox;
- cbSearchWholeWords: TCheckBox;
- cbSearchFromCursor: TCheckBox;
- cbSearchSelectedOnly: TCheckBox;
- btnOK: TButton;
- btnCancel: TButton;
- cbRegularExpression: TCheckBox;
- procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
- procedure FormClose(Sender: TObject; var Action: TCloseAction);
- procedure FormShow(Sender: TObject);
- private
- function GetSearchBackwards: boolean;
- function GetSearchCaseSensitive: boolean;
- function GetSearchFromCursor: boolean;
- function GetSearchInSelection: boolean;
- function GetSearchText: string;
- function GetSearchTextHistory: string;
- function GetSearchWholeWords: 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 SetSearchRegularExpression(const Value: boolean);
- function GetSearchRegularExpression: 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 SearchRegularExpression: boolean read GetSearchRegularExpression
- write SetSearchRegularExpression;
- end;
- var
- frmSearch: TfrmSearch;
- implementation
- {$R *.DFM}
- uses _frmMain;
- function TfrmSearch.GetSearchBackwards: boolean;
- begin
- Result := rgSearchDirection.ItemIndex = 1;
- end;
- function TfrmSearch.GetSearchCaseSensitive: boolean;
- begin
- Result := cbSearchCaseSensitive.Checked;
- end;
- function TfrmSearch.GetSearchFromCursor: boolean;
- begin
- Result := cbSearchFromCursor.Checked;
- end;
- function TfrmSearch.GetSearchInSelection: boolean;
- begin
- Result := cbSearchSelectedOnly.Checked;
- end;
- function TfrmSearch.GetSearchRegularExpression: boolean;
- begin
- Result := cbRegularExpression.Checked;
- end;
- function TfrmSearch.GetSearchText: string;
- begin
- Result := cbSearchText.Text;
- end;
- function TfrmSearch.GetSearchTextHistory: string;
- var
- i: integer;
- begin
- Result := '';
- for i := 0 to cbSearchText.Items.Count - 1 do begin
- if i >= 10 then
- break;
- if i > 0 then
- Result := Result + #13#10;
- Result := Result + cbSearchText.Items[i];
- end;
- end;
- function TfrmSearch.GetSearchWholeWords: boolean;
- begin
- Result := cbSearchWholeWords.Checked;
- end;
- procedure TfrmSearch.SetSearchBackwards(Value: boolean);
- begin
- rgSearchDirection.ItemIndex := Ord(Value);
- end;
- procedure TfrmSearch.SetSearchCaseSensitive(Value: boolean);
- begin
- cbSearchCaseSensitive.Checked := Value;
- end;
- procedure TfrmSearch.SetSearchFromCursor(Value: boolean);
- begin
- cbSearchFromCursor.Checked := Value;
- end;
- procedure TfrmSearch.SetSearchInSelection(Value: boolean);
- begin
- cbSearchSelectedOnly.Checked := Value;
- end;
- procedure TfrmSearch.SetSearchText(Value: string);
- begin
- cbSearchText.Text := Value;
- end;
- procedure TfrmSearch.SetSearchTextHistory(Value: string);
- begin
- cbSearchText.Items.Text := Value;
- end;
- procedure TfrmSearch.SetSearchWholeWords(Value: boolean);
- begin
- cbSearchWholeWords.Checked := Value;
- end;
- procedure TfrmSearch.SetSearchRegularExpression(
- const Value: boolean);
- begin
- cbRegularExpression.Checked := Value;
- end;
- { event handlers }
- procedure TfrmSearch.FormClose(Sender: TObject; var Action: TCloseAction);
- begin
- frmMain.MainConfig.WriteInteger('SearchPos', 'Left', Left);
- frmMain.MainConfig.WriteInteger('SearchPos', 'Top', Top);
- end;
- procedure TfrmSearch.FormCloseQuery(Sender: TObject;
- var CanClose: Boolean);
- var
- s: string;
- i: integer;
- begin
- if ModalResult = mrOK then begin
- s := cbSearchText.Text;
- if s <> '' then begin
- i := cbSearchText.Items.IndexOf(s);
- if i > -1 then begin
- cbSearchText.Items.Delete(i);
- cbSearchText.Items.Insert(0, s);
- cbSearchText.Text := s;
- end else
- cbSearchText.Items.Insert(0, s);
- end;
- end;
- end;
- procedure TfrmSearch.FormShow(Sender: TObject);
- begin
- Left := frmMain.MainConfig.ReadInteger('SearchPos', 'Left', Round((Screen.Width - Width) div 2));
- if Left >= Screen.Width then
- begin
- Left := 10;
- end;
- Top := frmMain.MainConfig.ReadInteger('SearchPos', 'Top', Round((Screen.Height - Height) div 2));
- if Top >= Screen.Height then
- begin
- Top := 10;
- end;
- cbSearchText.SetFocus;
- end;
- end.
-
|