mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-19 02:29:26 +02:00
661 lines
20 KiB
PHP
661 lines
20 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 license.
|
|
*****************************************************************************
|
|
}
|
|
|
|
|
|
type
|
|
|
|
{ TReplaceDialogForm }
|
|
TReplaceDialogForm = class(TForm)
|
|
// Same order as in TReplaceDialog
|
|
PanelButtons: TPanel;
|
|
CancelButton: TButton;
|
|
CaseSensitiveCheckBox: TCheckBox;
|
|
DirectionRadioGroup: TRadioGroup;
|
|
EditFind: TEdit;
|
|
EntireScopeCheckBox: TCheckBox;
|
|
FindMoreButton: TButton;
|
|
TextLabel: TLabel;
|
|
FlagPanel: TPanel;
|
|
HelpButton: TButton;
|
|
WholeWordsOnlyCheckBox: TCheckBox;
|
|
|
|
EditReplace: TEdit;
|
|
PromptOnReplaceCheckBox: TCheckBox;
|
|
ReplaceAllButton: TButton;
|
|
ReplaceButton: TButton;
|
|
ReplaceLabel: TLabel;
|
|
private
|
|
FButtonsBottom: Boolean;
|
|
public
|
|
{ public declarations }
|
|
constructor CreateNew(aOwner: TComponent; Options: TFindOptions); reintroduce;
|
|
procedure SetLayout (Options: TFindOptions);
|
|
end;
|
|
|
|
constructor TReplaceDialogForm.CreateNew(aOwner: TComponent;
|
|
Options: TFindOptions);
|
|
var
|
|
Layout: boolean; // true = Buttons at bottom
|
|
begin
|
|
inherited CreateNew(aOwner);
|
|
Layout := frButtonsAtBottom in Options;
|
|
if Layout then begin
|
|
Left := 415;
|
|
Height := 220;
|
|
Top := 391;
|
|
Width := 530;
|
|
ClientHeight := 220;
|
|
ClientWidth := 530;
|
|
Constraints.MinHeight := 220;
|
|
Constraints.MinWidth := 530;
|
|
end
|
|
else begin
|
|
Left := 415;
|
|
Height := 184;
|
|
Top := 333;
|
|
Width := 480;
|
|
ClientHeight := 140;
|
|
ClientWidth := 480;
|
|
Constraints.MinHeight := 184;
|
|
Constraints.MinWidth := 480;
|
|
end;
|
|
ActiveControl := EditFind;
|
|
AutoSize := True;
|
|
BorderIcons := [biSystemMenu, biHelp];
|
|
Caption := 'Replace Text';
|
|
//Position := poMainFormCenter;
|
|
LCLVersion := '1.3';
|
|
|
|
TextLabel := TLabel.Create(Self);
|
|
with TextLabel do begin
|
|
Left := 4;
|
|
Height := 17;
|
|
Top := 14;
|
|
Width := 77;
|
|
BorderSpacing.Left := 8;
|
|
BorderSpacing.Right := 8;
|
|
BorderSpacing.Top := 14;
|
|
Caption := 'Text to find';
|
|
FocusControl := EditFind;
|
|
ParentColor := False;
|
|
Parent := Self;
|
|
end;
|
|
ReplaceLabel := TLabel.Create(Self);
|
|
with ReplaceLabel do begin
|
|
Left := 4;
|
|
Height := 17;
|
|
Top := 45;
|
|
Width := 87;
|
|
BorderSpacing.Top := 14;
|
|
BorderSpacing.Right := 8;
|
|
Caption := 'Replace with';
|
|
FocusControl := EditReplace;
|
|
ParentColor := False;
|
|
Parent := Self;
|
|
end;
|
|
EditFind := TEdit.Create(Self);
|
|
with EditFind do begin
|
|
Left := 89;
|
|
Height := 27;
|
|
Top := 9;
|
|
Width := 288;
|
|
TabOrder := 0;
|
|
Text := 'EditFind';
|
|
Parent := Self;
|
|
end;
|
|
EditReplace := TEdit.Create(Self);
|
|
with EditReplace do begin
|
|
Left := 99;
|
|
Height := 27;
|
|
Top := 40;
|
|
Width := 278;
|
|
BorderSpacing.Left := 8;
|
|
TabOrder := 1;
|
|
Text := 'EditReplace';
|
|
Parent := Self;
|
|
end;
|
|
{
|
|
DirectionRadioGroup := TRadioGroup.Create(Self);
|
|
with DirectionRadioGroup do begin
|
|
Left := 155;
|
|
Height := 60;
|
|
Top := 62;
|
|
Width := 222;
|
|
AutoFill := True;
|
|
AutoSize := True;
|
|
BorderSpacing.Left := 12;
|
|
//BorderSpacing.Around := 0;
|
|
Caption := 'Direction';
|
|
ChildSizing.LeftRightSpacing := 6;
|
|
ChildSizing.TopBottomSpacing := 6;
|
|
ChildSizing.EnlargeHorizontal := crsHomogenousChildResize;
|
|
ChildSizing.EnlargeVertical := crsHomogenousChildResize;
|
|
ChildSizing.ShrinkHorizontal := crsScaleChilds;
|
|
ChildSizing.ShrinkVertical := crsScaleChilds;
|
|
ChildSizing.Layout := cclLeftToRightThenTopToBottom;
|
|
ChildSizing.ControlsPerLine := 2;
|
|
ClientHeight := 38;
|
|
ClientWidth := 212;
|
|
Columns := 2;
|
|
Constraints.MaxHeight := 60;
|
|
Items.Add('Forward');
|
|
Items.Add('Backward');
|
|
TabOrder := 2;
|
|
Parent := Self;
|
|
end;
|
|
}
|
|
FlagPanel := TPanel.Create(Self);
|
|
With FlagPanel do begin
|
|
Left := 4;
|
|
Height := 114;
|
|
Top := 62;
|
|
Width := 151;
|
|
AutoSize := True;
|
|
BorderSpacing.Around := 6;
|
|
BorderSpacing.Top := 16;
|
|
BevelOuter := bvNone;
|
|
ChildSizing.VerticalSpacing := 6;
|
|
ChildSizing.Layout := cclLeftToRightThenTopToBottom;
|
|
ChildSizing.ControlsPerLine := 1;
|
|
ClientHeight := 114;
|
|
ClientWidth := 151;
|
|
Constraints.MinHeight := 114;
|
|
TabOrder := 2;
|
|
Parent := Self;
|
|
end;
|
|
// Flags Panel Objects
|
|
WholeWordsOnlyCheckBox := TCheckBox.Create(Self);
|
|
with WholeWordsOnlyCheckBox do begin
|
|
Left := 0;
|
|
Height := 23;
|
|
Top := 0;
|
|
Width := 142;
|
|
Caption := 'Whole words only';
|
|
TabOrder := 0;
|
|
Parent := FlagPanel;
|
|
end;
|
|
CaseSensitiveCheckBox := TCheckBox.Create(Self);
|
|
with CaseSensitiveCheckBox do begin
|
|
Left := 0;
|
|
Height := 23;
|
|
Top := 29;
|
|
Width := 142;
|
|
Caption := 'Case sensitive';
|
|
TabOrder := 1;
|
|
Parent := FlagPanel;
|
|
end;
|
|
EntireScopeCheckBox := TCheckBox.Create(Self);
|
|
with EntireScopeCheckBox do begin
|
|
Left := 0;
|
|
Height := 23;
|
|
Top := 58;
|
|
Width := 142;
|
|
Caption := 'Search entire file';
|
|
TabOrder := 2;
|
|
Parent := FlagPanel;
|
|
end;
|
|
PromptOnReplaceCheckBox := TCheckBox.Create(Self);
|
|
with PromptOnReplaceCheckBox do begin
|
|
Left := 0;
|
|
Height := 23;
|
|
Top := 89;
|
|
Width := 151;
|
|
Caption := 'Prompt on replace';
|
|
TabOrder := 3;
|
|
Parent := FlagPanel;
|
|
end;
|
|
//End of Flags Panel objects
|
|
|
|
DirectionRadioGroup := TRadioGroup.Create(Self);
|
|
with DirectionRadioGroup do begin
|
|
Left := 155;
|
|
Height := 60;
|
|
Top := 62;
|
|
Width := 222;
|
|
AutoFill := True;
|
|
AutoSize := True;
|
|
BorderSpacing.Left := 12;
|
|
//BorderSpacing.Around := 0;
|
|
Caption := 'Direction';
|
|
ChildSizing.LeftRightSpacing := 6;
|
|
ChildSizing.TopBottomSpacing := 6;
|
|
ChildSizing.EnlargeHorizontal := crsHomogenousChildResize;
|
|
ChildSizing.EnlargeVertical := crsHomogenousChildResize;
|
|
ChildSizing.ShrinkHorizontal := crsScaleChilds;
|
|
ChildSizing.ShrinkVertical := crsScaleChilds;
|
|
ChildSizing.Layout := cclLeftToRightThenTopToBottom;
|
|
ChildSizing.ControlsPerLine := 2;
|
|
ClientHeight := 38;
|
|
ClientWidth := 212;
|
|
Columns := 2;
|
|
Constraints.MaxHeight := 60;
|
|
Items.Add('Forward');
|
|
Items.Add('Backward');
|
|
TabOrder := 3;
|
|
Parent := Self;
|
|
end;
|
|
|
|
PanelButtons := TPanel.Create(Self);
|
|
with PanelButtons do begin
|
|
if Layout then begin
|
|
Left := 0;
|
|
Height := 29;
|
|
Top := 191;
|
|
Width := 530;
|
|
Align := alBottom;
|
|
BevelOuter := bvNone;
|
|
ClientHeight := 29;
|
|
ClientWidth := 530;
|
|
TabOrder := 4;
|
|
end
|
|
else begin
|
|
Left := 388;
|
|
Height := 132;
|
|
Top := 0;
|
|
Width := 92;
|
|
Align := alRight;
|
|
BevelOuter := bvNone;
|
|
ChildSizing.LeftRightSpacing := 6;
|
|
ChildSizing.TopBottomSpacing := 6;
|
|
ChildSizing.VerticalSpacing := 6;
|
|
ClientHeight := 132;
|
|
ClientWidth := 92;
|
|
TabOrder := 3;
|
|
end;
|
|
Parent := Self;
|
|
end;
|
|
// PanelButtons Objects
|
|
FindMoreButton := TButton.Create(Self);
|
|
with FindMoreButton do begin
|
|
Tag := 1;
|
|
Left := 12;
|
|
Height := 26;
|
|
Top := 10;
|
|
Width := 91;
|
|
AutoSize := True;
|
|
Caption := 'Find more';
|
|
Constraints.MinWidth := 91;
|
|
Default := True;
|
|
TabOrder := 0;
|
|
Parent := PanelButtons;
|
|
end;
|
|
ReplaceButton := TButton.Create(Self);
|
|
with ReplaceButton do begin
|
|
Tag := 2;
|
|
Left := 12;
|
|
Height := 26;
|
|
Top := 46;
|
|
Width := 91;
|
|
AutoSize := True;
|
|
Caption := 'Replace';
|
|
Constraints.MinWidth := 91;
|
|
Default := True;
|
|
TabOrder := 2;
|
|
Parent := PanelButtons;
|
|
end;
|
|
ReplaceAllButton := TButton.Create(Self);
|
|
with ReplaceAllButton do begin
|
|
Tag := 3;
|
|
Left := 12;
|
|
Height := 26;
|
|
Top := 82;
|
|
Width := 91;
|
|
AutoSize := True;
|
|
Caption := 'Replace all';
|
|
Constraints.MinWidth := 91;
|
|
Default := True;
|
|
TabOrder := 2;
|
|
Parent := PanelButtons;
|
|
end;
|
|
CancelButton := TButton.Create(Self);
|
|
with CancelButton do begin
|
|
Left := 12;
|
|
Height := 26;
|
|
Top := 122;
|
|
Width := 91;
|
|
AutoSize := True;
|
|
Cancel := True;
|
|
Caption := 'Cancel';
|
|
Constraints.MinWidth := 91;
|
|
ModalResult := 2;
|
|
TabOrder := 1;
|
|
Parent := PanelButtons;
|
|
end;
|
|
HelpButton := TButton.Create(Self);
|
|
with HelpButton do begin
|
|
Left := 12;
|
|
Height := 26;
|
|
Top := 158;
|
|
Width := 91;
|
|
AutoSize := True;
|
|
Caption := 'Help';
|
|
Constraints.MinWidth := 91;
|
|
TabOrder := 3;
|
|
Parent := PanelButtons;
|
|
end;
|
|
|
|
//EditFind.OnChange := @EditFindChange;
|
|
SetLayout(Options);
|
|
end;
|
|
|
|
procedure TReplaceDialogForm.SetLayout(Options: TFindOptions);
|
|
var
|
|
dlgWidth: Integer;
|
|
begin
|
|
FButtonsBottom := frButtonsAtBottom in Options;
|
|
if FButtonsBottom then begin
|
|
if frShowHelp in Options then dlgWidth := 630
|
|
else dlgWidth := 530;
|
|
Height := 220;
|
|
Width := dlgWidth;
|
|
ClientHeight := 220;
|
|
ClientWidth := dlgWidth;
|
|
AutoSize := True;
|
|
with PanelButtons do begin
|
|
Left := 0;
|
|
Height := 29;
|
|
Top := 191;
|
|
Width := dlgWidth;
|
|
ClientHeight := 29;
|
|
ClientWidth := dlgWidth;
|
|
Align := alBottom;
|
|
end;
|
|
// Anchors
|
|
TextLabel.AnchorSideLeft.Control := TControl(Owner);
|
|
TextLabel.AnchorSideTop.Control := TControl(Owner);
|
|
//TextLabel.Anchors := [akTop, akLeft];
|
|
|
|
ReplaceLabel.AnchorSideLeft.Control := TextLabel;
|
|
ReplaceLabel.AnchorSideTop.Control := TextLabel;
|
|
ReplaceLabel.AnchorSideTop.Side := asrBottom;
|
|
//ReplaceLabel.Anchors := [akTop, akLeft];
|
|
|
|
EditFind.Width := 425;
|
|
EditFind.AnchorSideLeft.Control := TextLabel;
|
|
EditFind.AnchorSideLeft.Side := asrBottom;
|
|
EditFind.AnchorSideTop.Control := TextLabel;
|
|
EditFind.AnchorSideTop.Side := asrCenter;
|
|
EditFind.AnchorSideRight.Control := TControl(Owner);
|
|
EditFind.AnchorSideRight.Side := asrBottom;
|
|
EditFind.Anchors := [akTop, akLeft, akRight];
|
|
|
|
EditReplace.Width := 416;
|
|
EditReplace.AnchorSideLeft.Control := ReplaceLabel;
|
|
EditReplace.AnchorSideLeft.Side := asrBottom;
|
|
EditReplace.AnchorSideTop.Control := ReplaceLabel;
|
|
EditReplace.AnchorSideTop.Side := asrCenter;
|
|
EditReplace.AnchorSideRight.Control := TControl(Owner);
|
|
EditReplace.AnchorSideRight.Side := asrBottom;
|
|
EditReplace.Anchors := [akTop, akLeft, akRight];
|
|
|
|
//DirectionRadioGroup.Anchors := [akTop, akLeft];
|
|
DirectionRadioGroup.AnchorSideLeft.Control := FlagPanel;
|
|
DirectionRadioGroup.AnchorSideLeft.Side := asrBottom;
|
|
DirectionRadioGroup.AnchorSideTop.Control := FlagPanel;
|
|
|
|
FlagPanel.AnchorSideLeft.Control := TextLabel;
|
|
FlagPanel.AnchorSideTop.Control := EditReplace;
|
|
FlagPanel.AnchorSideTop.Side := asrBottom;
|
|
FlagPanel.AnchorSideBottom.Side := asrBottom;
|
|
|
|
FindMoreButton.Top := 0;
|
|
FindMoreButton.Left := 439;
|
|
FindMoreButton.AnchorSideTop.Control := PanelButtons;
|
|
FindMoreButton.AnchorSideRight.Control := PanelButtons;
|
|
FindMoreButton.AnchorSideRight.Side := asrBottom;
|
|
FindMoreButton.Anchors := [akTop, akRight];
|
|
FindMoreButton.BorderSpacing.Right := 6;
|
|
|
|
ReplaceButton.Top := 0;
|
|
ReplaceButton.Left := 309;
|
|
ReplaceButton.BorderSpacing.Left := 12;
|
|
ReplaceButton.AnchorSideLeft.Control := ReplaceAllButton;
|
|
ReplaceButton.AnchorSideLeft.Side := asrBottom;
|
|
ReplaceButton.AnchorSideTop.Control := PanelButtons;
|
|
ReplaceButton.AnchorSideRight.Side := asrBottom;
|
|
//ReplaceButton.Anchors := [akLeft,akTop];
|
|
|
|
ReplaceAllButton.Top := 0;
|
|
ReplaceAllButton.Left := 206;
|
|
ReplaceAllButton.BorderSpacing.Left := 12;
|
|
ReplaceAllButton.AnchorSideLeft.Control := CancelButton;
|
|
ReplaceAllButton.AnchorSideLeft.Side := asrBottom;
|
|
ReplaceAllButton.AnchorSideTop.Control := PanelButtons;
|
|
ReplaceAllButton.AnchorSideRight.Side := asrBottom;
|
|
//ReplaceAllButton.Anchors := [akLeft,akTop];
|
|
|
|
CancelButton.Top := 0;
|
|
CancelButton.Left := 103;
|
|
CancelButton.BorderSpacing.Left := 12;
|
|
CancelButton.AnchorSideLeft.Control := HelpButton;
|
|
CancelButton.AnchorSideLeft.Side := asrBottom;
|
|
CancelButton.AnchorSideTop.Control := PanelButtons;
|
|
CancelButton.AnchorSideRight.Side := asrBottom;
|
|
//CancelButton.Anchors := [akLeft,akTop];
|
|
|
|
HelpButton.AnchorSideLeft.Control := PanelButtons;
|
|
HelpButton.AnchorSideTop.Control := PanelButtons;
|
|
HelpButton.AnchorSideRight.Control := PanelButtons;
|
|
HelpButton.AnchorSideRight.Side := asrBottom;
|
|
//HelpButton.Anchors := [akLeft,akRight,akTop];
|
|
end
|
|
else begin
|
|
with PanelButtons do begin
|
|
Height := 184;
|
|
Top := 0;
|
|
Width := 103;
|
|
AutoSize := True;
|
|
Align := alRight;
|
|
end;
|
|
// Anchors
|
|
TextLabel.AnchorSideTop.Control := TControl(Owner);
|
|
TextLabel.AnchorSideLeft.Control := TControl(Owner);
|
|
|
|
ReplaceLabel.AnchorSideLeft.Control := TextLabel;
|
|
ReplaceLabel.AnchorSideTop.Control := TextLabel;
|
|
ReplaceLabel.AnchorSideTop.Side := asrBottom;
|
|
|
|
EditFind.Anchors := [akTop, akLeft, akRight];
|
|
EditFind.AnchorSideLeft.Control := TextLabel;
|
|
EditFind.AnchorSideLeft.Side := asrBottom;
|
|
EditFind.AnchorSideTop.Control := TextLabel;
|
|
EditFind.AnchorSideTop.Side := asrCenter;
|
|
EditFind.AnchorSideRight.Control := PanelButtons;
|
|
|
|
EditReplace.Anchors := [akTop, akLeft, akRight];
|
|
EditReplace.AnchorSideLeft.Control := ReplaceLabel;
|
|
EditReplace.AnchorSideLeft.Side := asrBottom;
|
|
EditReplace.AnchorSideTop.Control := ReplaceLabel;
|
|
EditReplace.AnchorSideTop.Side := asrCenter;
|
|
EditReplace.AnchorSideRight.Control := PanelButtons;
|
|
|
|
DirectionRadioGroup.Anchors := [akTop, akLeft, akRight, akBottom];
|
|
DirectionRadioGroup.AnchorSideLeft.Control := FlagPanel;
|
|
DirectionRadioGroup.AnchorSideLeft.Side := asrBottom;
|
|
DirectionRadioGroup.AnchorSideTop.Control := FlagPanel;
|
|
DirectionRadioGroup.AnchorSideRight.Control := PanelButtons;
|
|
DirectionRadioGroup.AnchorSideBottom.Control := FlagPanel;
|
|
DirectionRadioGroup.AnchorSideBottom.Side := asrBottom;
|
|
|
|
FlagPanel.AnchorSideLeft.Control := TextLabel;
|
|
FlagPanel.AnchorSideTop.Control := ReplaceLabel;
|
|
FlagPanel.AnchorSideTop.Side := asrBottom;
|
|
|
|
FindMoreButton.BorderSpacing.Top := 10;
|
|
FindMoreButton.Anchors := [akTop, akRight];
|
|
FindMoreButton.AnchorSideTop.Control := PanelButtons;
|
|
FindMoreButton.AnchorSideRight.Control := PanelButtons;
|
|
FindMoreButton.AnchorSideRight.Side := asrBottom;
|
|
|
|
ReplaceButton.BorderSpacing.Top := 10;
|
|
ReplaceButton.AnchorSideLeft.Side := asrBottom;
|
|
ReplaceButton.AnchorSideTop.Control := FindMoreButton;
|
|
ReplaceButton.AnchorSideTop.Side := asrBottom;
|
|
ReplaceButton.AnchorSideRight.Control := PanelButtons;
|
|
ReplaceButton.AnchorSideRight.Side := asrBottom;
|
|
ReplaceButton.Anchors := [akTop, akRight];
|
|
|
|
ReplaceAllButton.BorderSpacing.Top := 10;
|
|
ReplaceAllButton.AnchorSideLeft.Side := asrBottom;
|
|
ReplaceAllButton.AnchorSideTop.Control := ReplaceButton;
|
|
ReplaceAllButton.AnchorSideTop.Side := asrBottom;
|
|
ReplaceAllButton.AnchorSideRight.Control := PanelButtons;
|
|
ReplaceAllButton.AnchorSideRight.Side := asrBottom;
|
|
ReplaceAllButton.Anchors := [akTop, akRight];
|
|
|
|
CancelButton.BorderSpacing.Bottom := 10;
|
|
CancelButton.AnchorSideLeft.Side := asrBottom;
|
|
CancelButton.AnchorSideTop.Side := asrBottom;
|
|
CancelButton.AnchorSideRight.Control := PanelButtons;
|
|
CancelButton.AnchorSideRight.Side := asrBottom;
|
|
CancelButton.AnchorSideBottom.Control := HelpButton;
|
|
CancelButton.Anchors := [akRight, akBottom];
|
|
|
|
HelpButton.AnchorSideLeft.Control := PanelButtons;
|
|
HelpButton.AnchorSideRight.Control := PanelButtons;
|
|
HelpButton.AnchorSideRight.Side := asrBottom;
|
|
HelpButton.AnchorSideBottom.Control := PanelButtons;
|
|
HelpButton.AnchorSideBottom.Side := asrBottom;
|
|
HelpButton.Anchors := [akLeft, akRight, akBottom];
|
|
end;
|
|
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
|
|
Result := TReplaceDialogForm.CreateNew(nil,Options);
|
|
with TReplaceDialogForm(Result) do
|
|
begin
|
|
FindMoreButton.Caption := rsFindMore;
|
|
ReplaceButton.Caption := rsReplace;
|
|
ReplaceAllButton.Caption := rsReplaceAll;
|
|
CancelButton.Caption := rsMbCancel;
|
|
HelpButton.Caption := rsHelp;
|
|
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;
|
|
if Result.Canvas.TextWidth(TextLabel.Caption) > Result.Canvas.TextWidth(ReplaceLabel.Caption) then
|
|
begin
|
|
EditReplace.AnchorSideLeft.Control := EditFind;
|
|
EditReplace.AnchorSideLeft.Side := asrTop;
|
|
end else begin
|
|
EditFind.AnchorSideLeft.Control := EditReplace;
|
|
EditFind.AnchorSideLeft.Side := asrTop;
|
|
end;
|
|
|
|
//Setting up button eventhandlers
|
|
FindMoreButton.OnClick := @FindClick;
|
|
ReplaceButton.OnClick := @ReplaceClick;
|
|
ReplaceAllButton.OnClick := @ReplaceAllClick;
|
|
CancelButton.OnClick := @CancelClick;
|
|
HelpButton.OnClick := @HelpClick;
|
|
PopupMode := pmAuto;
|
|
// Init local property with default value
|
|
Result.Top := FFormTop;
|
|
Result.Left := FFormLeft;
|
|
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);
|
|
FOptions += [frReplace, frReplaceAll, frHidePromptOnreplace];
|
|
end;
|
|
|
|
function TReplaceDialog.DefaultTitle: string;
|
|
begin
|
|
Result := rsReplace;
|
|
end;
|
|
|