summaryrefslogtreecommitdiff
path: root/examples/apps/nanoedit/frm_find.pas
diff options
context:
space:
mode:
Diffstat (limited to 'examples/apps/nanoedit/frm_find.pas')
-rw-r--r--examples/apps/nanoedit/frm_find.pas196
1 files changed, 196 insertions, 0 deletions
diff --git a/examples/apps/nanoedit/frm_find.pas b/examples/apps/nanoedit/frm_find.pas
new file mode 100644
index 00000000..96bfe6fa
--- /dev/null
+++ b/examples/apps/nanoedit/frm_find.pas
@@ -0,0 +1,196 @@
+unit frm_find;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+ SysUtils, Classes, fpg_base, fpg_main, fpg_form, fpg_label,
+ fpg_edit, fpg_button, fpg_checkbox, fpg_panel, fpg_radiobutton,
+ fpg_textedit;
+
+type
+
+ TFindForm = class(TfpgForm)
+ private
+ {@VFD_HEAD_BEGIN: FindForm}
+ Label1: TfpgLabel;
+ FindEdit: TfpgEdit;
+ btnFind: TfpgButton;
+ btnCancel: TfpgButton;
+ GroupBox1: TfpgGroupBox;
+ chkWholeWord: TfpgCheckBox;
+ chkCaseSensitive: TfpgCheckBox;
+ rbForward: TfpgRadioButton;
+ rbBackward: TfpgRadioButton;
+ {@VFD_HEAD_END: FindForm}
+ procedure btnFindClicked(Sender: TObject);
+ function GetTextToFind: TfpgString;
+ function GetIsForward: boolean;
+ function GetFindOptions: TfpgFindOptions;
+ public
+ procedure AfterCreate; override;
+ function Execute: boolean;
+ property TextToFind: TfpgString read GetTextToFind;
+ property IsForward: boolean read GetIsForward;
+ property FindOptions: TfpgFindOptions read GetFindOptions;
+ end;
+
+{@VFD_NEWFORM_DECL}
+
+implementation
+
+{@VFD_NEWFORM_IMPL}
+
+procedure TFindForm.btnFindClicked(Sender: TObject);
+begin
+ ModalResult := mrOK;
+end;
+
+function TFindForm.GetTextToFind: TfpgString;
+begin
+ Result := FindEdit.Text;
+end;
+
+function TFindForm.GetIsForward: boolean;
+begin
+ Result := rbForward.Checked;
+end;
+
+function TFindForm.GetFindOptions: TfpgFindOptions;
+begin
+ Result := [foEntireScope];
+ if chkWholeWord.Checked then
+ Result := Result + [foWholeWords];
+ if chkCaseSensitive.Checked then
+ Result := Result + [foMatchCase];
+end;
+
+procedure TFindForm.AfterCreate;
+begin
+ {%region 'Auto-generated GUI code' -fold}
+ {@VFD_BODY_BEGIN: FindForm}
+ Name := 'FindForm';
+ SetPosition(292, 173, 429, 110);
+ WindowTitle := 'Find';
+ Hint := '';
+
+ Label1 := TfpgLabel.Create(self);
+ with Label1 do
+ begin
+ Name := 'Label1';
+ SetPosition(4, 4, 280, 16);
+ FontDesc := '#Label1';
+ Hint := '';
+ Text := 'Text to find:';
+ end;
+
+ FindEdit := TfpgEdit.Create(self);
+ with FindEdit do
+ begin
+ Name := 'FindEdit';
+ SetPosition(4, 20, 332, 24);
+ Anchors := [anLeft,anRight,anTop];
+ ExtraHint := '';
+ FontDesc := '#Edit1';
+ Hint := '';
+ TabOrder := 2;
+ Text := '';
+ end;
+
+ btnFind := TfpgButton.Create(self);
+ with btnFind do
+ begin
+ Name := 'btnFind';
+ SetPosition(345, 8, 80, 24);
+ Anchors := [anRight,anTop];
+ Text := 'Find';
+ FontDesc := '#Label1';
+ Hint := '';
+ ImageName := '';
+ TabOrder := 3;
+ OnClick := @btnFindClicked;
+ end;
+
+ btnCancel := TfpgButton.Create(self);
+ with btnCancel do
+ begin
+ Name := 'btnCancel';
+ SetPosition(345, 36, 80, 24);
+ Anchors := [anRight,anTop];
+ Text := 'Cancel';
+ FontDesc := '#Label1';
+ Hint := '';
+ ImageName := '';
+ ModalResult := mrCancel;
+ TabOrder := 4;
+ end;
+
+ GroupBox1 := TfpgGroupBox.Create(self);
+ with GroupBox1 do
+ begin
+ Name := 'GroupBox1';
+ SetPosition(160, 56, 176, 44);
+ FontDesc := '#Label1';
+ Hint := '';
+ Text := 'Direction';
+ end;
+
+ chkWholeWord := TfpgCheckBox.Create(self);
+ with chkWholeWord do
+ begin
+ Name := 'chkWholeWord';
+ SetPosition(4, 52, 148, 20);
+ FontDesc := '#Label1';
+ Hint := '';
+ TabOrder := 6;
+ Text := 'Whole words only';
+ end;
+
+ chkCaseSensitive := TfpgCheckBox.Create(self);
+ with chkCaseSensitive do
+ begin
+ Name := 'chkCaseSensitive';
+ SetPosition(4, 72, 148, 20);
+ FontDesc := '#Label1';
+ Hint := '';
+ TabOrder := 7;
+ Text := 'Case sensitive';
+ end;
+
+ rbForward := TfpgRadioButton.Create(GroupBox1);
+ with rbForward do
+ begin
+ Name := 'rbForward';
+ SetPosition(8, 20, 76, 20);
+ Checked := True;
+ FontDesc := '#Label1';
+ GroupIndex := 0;
+ Hint := '';
+ TabOrder := 1;
+ Text := 'Forword';
+ end;
+
+ rbBackward := TfpgRadioButton.Create(GroupBox1);
+ with rbBackward do
+ begin
+ Name := 'rbBackward';
+ SetPosition(88, 20, 84, 20);
+ FontDesc := '#Label1';
+ GroupIndex := 0;
+ Hint := '';
+ TabOrder := 2;
+ Text := 'Backward';
+ end;
+
+ {@VFD_BODY_END: FindForm}
+ {%endregion}
+end;
+
+function TFindForm.Execute: boolean;
+begin
+ Result := ShowModal <> mrCancel;
+end;
+
+
+end.