summaryrefslogtreecommitdiff
path: root/docview/components/richtext/testapp/testapp.lpr
diff options
context:
space:
mode:
authorGraeme Geldenhuys <graeme@mastermaths.co.za>2012-11-21 17:02:52 +0000
committerGraeme Geldenhuys <graeme@mastermaths.co.za>2012-11-21 17:02:52 +0000
commit24dd3c98d170e14d743c1b8b79e4809fd8be0564 (patch)
tree371519c3c0cac37189392970cf4ae926e410b89a /docview/components/richtext/testapp/testapp.lpr
parenta904897b6f618022e66d9a3e7ac6804f9ceb12f7 (diff)
downloadfpGUI-24dd3c98d170e14d743c1b8b79e4809fd8be0564.tar.xz
Adds a small stand-alone test app for the RichTextView component.
Diffstat (limited to 'docview/components/richtext/testapp/testapp.lpr')
-rw-r--r--docview/components/richtext/testapp/testapp.lpr206
1 files changed, 206 insertions, 0 deletions
diff --git a/docview/components/richtext/testapp/testapp.lpr b/docview/components/richtext/testapp/testapp.lpr
new file mode 100644
index 00000000..66e60de2
--- /dev/null
+++ b/docview/components/richtext/testapp/testapp.lpr
@@ -0,0 +1,206 @@
+{
+ This is a quick and simple test app so I coud test the TRichTextView component
+ as a standard-alone widget.
+}
+program testapp;
+
+{$mode objfpc}{$H+}
+
+uses
+ {$IFDEF UNIX}
+ cthreads,
+ {$ENDIF}
+ Classes, fpg_base, fpg_main, fpg_form, fpg_button, fpg_memo, fpg_dialogs,
+ fpg_checkbox, fpg_imagelist, RichTextView;
+
+type
+
+ TMainForm = class(TfpgForm)
+ private
+ {@VFD_HEAD_BEGIN: MainForm}
+ Button1: TfpgButton;
+ RichTextView1: TRichTextView;
+ Memo1: TfpgMemo;
+ CheckBox1: TfpgCheckBox;
+ btnLoad: TfpgButton;
+ {@VFD_HEAD_END: MainForm}
+ FImageList: TfpgImageList;
+ procedure Button1Click(Sender: TObject);
+ procedure btnLoadClicked(Sender: TObject);
+ procedure LinkClicked(Sender: TRichTextView; Link: string);
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ procedure AfterCreate; override;
+ end;
+
+{@VFD_NEWFORM_DECL}
+
+
+
+{@VFD_NEWFORM_IMPL}
+
+procedure TMainForm.Button1Click(Sender: TObject);
+begin
+ if CheckBox1.Checked then
+ RichTextView1.AddParagraph(PChar(Memo1.Text))
+ else
+ RichTextView1.AddText(PChar(Memo1.Text));
+end;
+
+procedure TMainForm.btnLoadClicked(Sender: TObject);
+var
+ sl: TStringList;
+ lFile: TfpgString;
+begin
+ lFile := SelectFileDialog(sfdOpen, 'Text Files (*.txt)|*.txt');
+ if lFile = '' then
+ Exit;
+ sl := TStringList.Create;
+ try
+ sl.LoadFromFile(lFile);
+ RichTextView1.Clear;
+ RichTextView1.AddText(PChar(sl.Text));
+ finally
+ sl.Free;
+ end;
+end;
+
+procedure TMainForm.LinkClicked(Sender: TRichTextView; Link: string);
+begin
+ ShowMessage(Link);
+end;
+
+constructor TMainForm.Create(AOwner: TComponent);
+var
+ img_ref: TfpgImage;
+ img: TfpgImage;
+begin
+ inherited Create(AOwner);
+ FImageList := TfpgImageList.Create;
+
+ { make copies of standard fpGUI images, and add them to our imagelist }
+ img_ref := fpgImages.GetImage('stdimg.folderhome');
+ img := img_ref.ImageFromSource;
+ FImageList.AddImage(img);
+
+ img_ref := fpgImages.GetImage('stdimg.ok');
+ img := img_ref.ImageFromSource;
+ FImageList.AddImage(img);
+
+ img_ref := fpgImages.GetImage('stdimg.dlg.warning');
+ img := img_ref.ImageFromSource;
+ FImageList.AddImage(img);
+
+ img_ref := fpgImages.GetImage('stdimg.dlg.info');
+ img := img_ref.ImageFromSource;
+ FImageList.AddImage(img);
+
+end;
+
+destructor TMainForm.Destroy;
+begin
+ FImageList.Free;
+ inherited Destroy;
+end;
+
+procedure TMainForm.AfterCreate;
+begin
+ {%region 'Auto-generated GUI code' -fold}
+ {@VFD_BODY_BEGIN: MainForm}
+ Name := 'MainForm';
+ SetPosition(397, 276, 507, 403);
+ WindowTitle := 'RichTextView test application';
+ Hint := '';
+
+ Button1 := TfpgButton.Create(self);
+ with Button1 do
+ begin
+ Name := 'Button1';
+ SetPosition(412, 12, 80, 24);
+ Anchors := [anRight,anTop];
+ Text := 'Open';
+ FontDesc := '#Label1';
+ Hint := '';
+ ImageName := '';
+ TabOrder := 1;
+ OnClick := @Button1Click;
+ end;
+
+ RichTextView1 := TRichTextView.Create(self);
+ with RichTextView1 do
+ begin
+ Name := 'RichTextView1';
+ SetPosition(20, 100, 476, 288);
+ Anchors := [anLeft,anRight,anTop,anBottom];
+ ScrollDistance := 80;
+ Images := FImageList;
+ RichTextSettings.Heading1Font := fpgGetFont('Arial-18:bold');
+ RichTextSettings.Heading2Font := fpgGetFont('Arial-14:bold');
+ RichTextSettings.Heading3Font := fpgGetFont('Arial-12:bold');
+ RichTextSettings.NormalFont := fpgGetFont(FPG_DEFAULT_FONT_DESC);
+ RichTextSettings.FixedFont := fpgGetFont('Courier New-10:antialiased=true');
+ OnClickLink :=@LinkClicked;
+ end;
+
+ Memo1 := TfpgMemo.Create(self);
+ with Memo1 do
+ begin
+ Name := 'Memo1';
+ SetPosition(20, 8, 384, 80);
+ Anchors := [anLeft,anRight,anTop];
+ FontDesc := '#Edit1';
+ Hint := '';
+ Lines.Add('<red>hello<black> <u>world</u>. <b>Graeme</b> says hi.');
+ TabOrder := 2;
+ end;
+
+ CheckBox1 := TfpgCheckBox.Create(self);
+ with CheckBox1 do
+ begin
+ Name := 'CheckBox1';
+ SetPosition(408, 40, 92, 20);
+ Anchors := [anRight,anTop];
+ FontDesc := '#Label1';
+ Hint := '';
+ TabOrder := 3;
+ Text := 'Paragraph';
+ end;
+
+ btnLoad := TfpgButton.Create(self);
+ with btnLoad do
+ begin
+ Name := 'btnLoad';
+ SetPosition(412, 64, 80, 23);
+ Text := 'Load...';
+ FontDesc := '#Label1';
+ Hint := '';
+ ImageName := '';
+ TabOrder := 5;
+ OnClick := @btnLoadClicked;
+ end;
+
+ {@VFD_BODY_END: MainForm}
+ {%endregion}
+end;
+
+
+procedure MainProc;
+var
+ frm: TMainForm;
+begin
+ fpgApplication.Initialize;
+ frm := TMainForm.Create(nil);
+ try
+ frm.Show;
+ fpgApplication.Run;
+ finally
+ frm.Free;
+ end;
+end;
+
+begin
+ MainProc;
+end.
+
+