mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-14 18:20:31 +01:00
166 lines
5.5 KiB
PHP
166 lines
5.5 KiB
PHP
{%MainUnit ../dialogs.pp}
|
|
{******************************************************************************
|
|
TFindDialog
|
|
******************************************************************************
|
|
|
|
*****************************************************************************
|
|
* *
|
|
* This file is part of the Lazarus Component Library (LCL) *
|
|
* *
|
|
* See the file COPYING.modifiedLGPL.txt, included in this distribution, *
|
|
* for details about the copyright. *
|
|
* *
|
|
* This program is distributed in the hope that it will be useful, *
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
|
* *
|
|
*****************************************************************************
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
type
|
|
|
|
{ TReplaceDialogForm }
|
|
|
|
TReplaceDialogForm = class(TForm)
|
|
PromptOnReplaceCheckBox: TCheckBox;
|
|
EntireScopeCheckBox: TCheckBox;
|
|
FindMoreButton: TButton;
|
|
ReplaceButton: TButton;
|
|
ReplaceAllButton: TButton;
|
|
CancelButton: TButton;
|
|
HelpButton: TButton;
|
|
WholeWordsOnlyCheckBox: TCheckBox;
|
|
CaseSensitiveCheckBox: TCheckBox;
|
|
EditFind: TEdit;
|
|
EditReplace: TEdit;
|
|
TextLabel: TLabel;
|
|
ReplaceLabel: TLabel;
|
|
DirectionRadioGroup: TRadioGroup;
|
|
private
|
|
public
|
|
{ public declarations }
|
|
end;
|
|
|
|
{ TReplaceDialog }
|
|
|
|
procedure TReplaceDialog.ReplaceClick(Sender: TObject);
|
|
begin
|
|
GetFormValues;
|
|
//Delphi does it this way
|
|
FOptions := FOptions + [frReplace] - [frReplaceAll, frFindNext];
|
|
Replace;
|
|
end;
|
|
|
|
procedure TReplaceDialog.ReplaceAllClick(Sender: TObject);
|
|
begin
|
|
GetFormValues;
|
|
//Delphi does it this way
|
|
FOptions := FOptions + [frReplaceAll] - [frFindNext, frReplace];
|
|
Replace;
|
|
end;
|
|
|
|
function TReplaceDialog.CreateForm: TForm;
|
|
begin
|
|
// do not use Self as Owner, otherwise as desgntime this will not work
|
|
Result := TReplaceDialogForm.Create(nil);
|
|
with TReplaceDialogForm(Result) do
|
|
begin
|
|
FindMoreButton.Caption := rsFindMore;
|
|
ReplaceButton.Caption := rsReplace;
|
|
ReplaceAllButton.Caption := rsReplaceAll;
|
|
CancelButton.Caption := rsMbCancel;
|
|
HelpButton.Caption := ifsVK_HELP;
|
|
WholeWordsOnlyCheckBox.Caption := rsWholeWordsOnly;
|
|
CaseSensitiveCheckBox.Caption := rsCaseSensitive;
|
|
EntireScopeCheckBox.Caption := rsEntireScope;
|
|
PromptOnReplaceCheckBox.Caption := rsPromptOnReplace;
|
|
TextLabel.Caption := rsText;
|
|
ReplaceLabel.Caption := rsReplace;
|
|
DirectionRadioGroup.Caption := rsDirection;
|
|
DirectionRadioGroup.Items[0] := rsForward;
|
|
DirectionRadioGroup.Items[1] := rsBackward;
|
|
|
|
//Setting up button eventhandlers
|
|
FindMoreButton.OnClick := @FindClick;
|
|
ReplaceButton.OnClick := @ReplaceClick;
|
|
ReplaceAllButton.OnClick := @ReplaceAllClick;
|
|
CancelButton.OnClick := @CancelClick;
|
|
HelpButton.OnClick := @HelpClick;
|
|
PopupMode := pmAuto;
|
|
end;
|
|
end;
|
|
|
|
procedure TReplaceDialog.SetFormValues;
|
|
var
|
|
dlg: TReplaceDialogForm;
|
|
begin
|
|
dlg:=TReplaceDialogForm(FFindForm);
|
|
dlg.EditFind.Text:=FFindText;
|
|
Dlg.EditFind.SelectAll;
|
|
Dlg.ActiveControl:=Dlg.EditFind;
|
|
|
|
dlg.EditReplace.Text:=FReplaceText;
|
|
|
|
dlg.WholeWordsOnlyCheckBox.Checked:=frWholeWord in Options;
|
|
Dlg.EntireScopeCheckBox.Checked:=frEntireScope in Options;
|
|
dlg.CaseSensitiveCheckBox.Checked:=frMatchCase in Options;
|
|
dlg.PromptOnReplaceCheckBox.Checked := frPromptOnReplace in Options;
|
|
Dlg.DirectionRadioGroup.ItemIndex:=ord(not(frDown in Options));
|
|
|
|
dlg.WholeWordsOnlyCheckBox.Enabled:=not (frDisableWholeWord in Options);
|
|
dlg.CaseSensitiveCheckBox.Enabled:=not (frDisableMatchCase in Options);
|
|
dlg.DirectionRadioGroup.Enabled:=not (frDisableUpDown in Options);
|
|
|
|
dlg.WholeWordsOnlyCheckBox.Visible:=not (frHideWholeWord in Options);
|
|
dlg.CaseSensitiveCheckBox.Visible:=not (frHideMatchCase in Options);
|
|
dlg.DirectionRadioGroup.Visible:=not (frHideUpDown in Options);
|
|
dlg.HelpButton.Visible:=(frShowHelp in Options);
|
|
Dlg.EntireScopeCheckBox.Visible := not (frHideEntireScope in Options);
|
|
dlg.PromptOnReplaceCheckBox.Visible := not (frHidePromptOnReplace in Options);
|
|
end;
|
|
|
|
procedure TReplaceDialog.GetFormValues;
|
|
var
|
|
Dlg: TReplaceDialogForm;
|
|
begin
|
|
Dlg:=TReplaceDialogForm(FFindForm);
|
|
if Dlg.DirectionRadioGroup.ItemIndex = 0 then
|
|
FOptions:=FOptions + [frDown]
|
|
else
|
|
FOptions:=FOptions - [frDown];
|
|
if Dlg.WholeWordsOnlyCheckBox.Checked then
|
|
FOptions:=FOptions + [frWholeWord]
|
|
else
|
|
FOptions:=FOptions - [frWholeWord];
|
|
if Dlg.CaseSensitiveCheckBox.Checked then
|
|
FOptions:=FOptions + [frMatchCase]
|
|
else
|
|
FOptions:=FOptions - [frMatchCase];
|
|
if Dlg.EntireScopeCheckBox.Checked then
|
|
FOptions:=FOptions + [frEntireScope]
|
|
else
|
|
FOptions:=FOptions - [frEntireScope];
|
|
if Dlg.PromptOnReplaceCheckBox.Checked then
|
|
FOptions := FOptions + [frPromptOnReplace]
|
|
else
|
|
FOptions := FOptions - [frPromptOnReplace];
|
|
FFindText := Dlg.EditFind.Text;
|
|
FReplaceText := Dlg.EditReplace.Text;
|
|
end;
|
|
|
|
constructor TReplaceDialog.Create(AOwner: TComponent);
|
|
begin
|
|
inherited Create(AOwner);
|
|
Options:=Options + [frReplace, frReplaceAll, frHidePromptOnreplace];
|
|
end;
|
|
|
|
function TReplaceDialog.DefaultTitle: string;
|
|
begin
|
|
Result := rsReplace;
|
|
end;
|
|
|