diff --git a/components/jvcllaz/examples/JvMarkup/MarkupDemo.lpi b/components/jvcllaz/examples/JvMarkup/MarkupDemo.lpi new file mode 100644 index 000000000..cc63c10b4 --- /dev/null +++ b/components/jvcllaz/examples/JvMarkup/MarkupDemo.lpi @@ -0,0 +1,84 @@ + + + + + + + + + + <Scaled Value="True"/> + <ResourceType Value="res"/> + <UseXPManifest Value="True"/> + <XPManifest> + <DpiAware Value="True"/> + </XPManifest> + <Icon Value="0"/> + </General> + <BuildModes Count="1"> + <Item1 Name="Default" Default="True"/> + </BuildModes> + <PublishOptions> + <Version Value="2"/> + </PublishOptions> + <RunParams> + <FormatVersion Value="2"/> + <Modes Count="0"/> + </RunParams> + <RequiredPackages Count="3"> + <Item1> + <PackageName Value="SynEdit"/> + </Item1> + <Item2> + <PackageName Value="JvJansLazR"/> + </Item2> + <Item3> + <PackageName Value="LCL"/> + </Item3> + </RequiredPackages> + <Units Count="2"> + <Unit0> + <Filename Value="MarkupDemo.lpr"/> + <IsPartOfProject Value="True"/> + </Unit0> + <Unit1> + <Filename Value="main.pas"/> + <IsPartOfProject Value="True"/> + <ComponentName Value="MainForm"/> + <HasResources Value="True"/> + <ResourceBaseClass Value="Form"/> + </Unit1> + </Units> + </ProjectOptions> + <CompilerOptions> + <Version Value="11"/> + <PathDelim Value="\"/> + <Target> + <Filename Value="..\..\bin\MarkupDemo"/> + </Target> + <SearchPaths> + <IncludeFiles Value="$(ProjOutDir)"/> + <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> + </SearchPaths> + <Linking> + <Options> + <Win32> + <GraphicApplication Value="True"/> + </Win32> + </Options> + </Linking> + </CompilerOptions> + <Debugging> + <Exceptions Count="3"> + <Item1> + <Name Value="EAbort"/> + </Item1> + <Item2> + <Name Value="ECodetoolError"/> + </Item2> + <Item3> + <Name Value="EFOpenError"/> + </Item3> + </Exceptions> + </Debugging> +</CONFIG> diff --git a/components/jvcllaz/examples/JvMarkup/MarkupDemo.lpr b/components/jvcllaz/examples/JvMarkup/MarkupDemo.lpr new file mode 100644 index 000000000..829343c07 --- /dev/null +++ b/components/jvcllaz/examples/JvMarkup/MarkupDemo.lpr @@ -0,0 +1,22 @@ +program MarkupDemo; + +{$mode objfpc}{$H+} + +uses + {$IFDEF UNIX}{$IFDEF UseCThreads} + cthreads, + {$ENDIF}{$ENDIF} + Interfaces, // this includes the LCL widgetset + Forms, main + { you can add units after this }; + +{$R *.res} + +begin + RequireDerivedFormResource := True; + Application.Scaled := True; + Application.Initialize; + Application.CreateForm(TMainForm, MainForm); + Application.Run; +end. + diff --git a/components/jvcllaz/examples/JvMarkup/main.lfm b/components/jvcllaz/examples/JvMarkup/main.lfm new file mode 100644 index 000000000..2f88ba0c2 --- /dev/null +++ b/components/jvcllaz/examples/JvMarkup/main.lfm @@ -0,0 +1,602 @@ +object MainForm: TMainForm + Left = 310 + Height = 519 + Top = 127 + Width = 740 + Caption = 'MainForm' + ClientHeight = 519 + ClientWidth = 740 + OnCreate = FormCreate + LCLVersion = '1.9.0.0' + inline SynEdit1: TSynEdit + Left = 0 + Height = 322 + Top = 0 + Width = 740 + Align = alClient + Font.Height = -13 + Font.Name = 'Courier New' + Font.Pitch = fpFixed + Font.Quality = fqNonAntialiased + ParentColor = False + ParentFont = False + TabOrder = 0 + Gutter.Width = 57 + Gutter.MouseActions = <> + RightGutter.Width = 0 + RightGutter.MouseActions = <> + Highlighter = SynHTMLSyn1 + Keystrokes = < + item + Command = ecUp + ShortCut = 38 + end + item + Command = ecSelUp + ShortCut = 8230 + end + item + Command = ecScrollUp + ShortCut = 16422 + end + item + Command = ecDown + ShortCut = 40 + end + item + Command = ecSelDown + ShortCut = 8232 + end + item + Command = ecScrollDown + ShortCut = 16424 + end + item + Command = ecLeft + ShortCut = 37 + end + item + Command = ecSelLeft + ShortCut = 8229 + end + item + Command = ecWordLeft + ShortCut = 16421 + end + item + Command = ecSelWordLeft + ShortCut = 24613 + end + item + Command = ecRight + ShortCut = 39 + end + item + Command = ecSelRight + ShortCut = 8231 + end + item + Command = ecWordRight + ShortCut = 16423 + end + item + Command = ecSelWordRight + ShortCut = 24615 + end + item + Command = ecPageDown + ShortCut = 34 + end + item + Command = ecSelPageDown + ShortCut = 8226 + end + item + Command = ecPageBottom + ShortCut = 16418 + end + item + Command = ecSelPageBottom + ShortCut = 24610 + end + item + Command = ecPageUp + ShortCut = 33 + end + item + Command = ecSelPageUp + ShortCut = 8225 + end + item + Command = ecPageTop + ShortCut = 16417 + end + item + Command = ecSelPageTop + ShortCut = 24609 + end + item + Command = ecLineStart + ShortCut = 36 + end + item + Command = ecSelLineStart + ShortCut = 8228 + end + item + Command = ecEditorTop + ShortCut = 16420 + end + item + Command = ecSelEditorTop + ShortCut = 24612 + end + item + Command = ecLineEnd + ShortCut = 35 + end + item + Command = ecSelLineEnd + ShortCut = 8227 + end + item + Command = ecEditorBottom + ShortCut = 16419 + end + item + Command = ecSelEditorBottom + ShortCut = 24611 + end + item + Command = ecToggleMode + ShortCut = 45 + end + item + Command = ecCopy + ShortCut = 16429 + end + item + Command = ecPaste + ShortCut = 8237 + end + item + Command = ecDeleteChar + ShortCut = 46 + end + item + Command = ecCut + ShortCut = 8238 + end + item + Command = ecDeleteLastChar + ShortCut = 8 + end + item + Command = ecDeleteLastChar + ShortCut = 8200 + end + item + Command = ecDeleteLastWord + ShortCut = 16392 + end + item + Command = ecUndo + ShortCut = 32776 + end + item + Command = ecRedo + ShortCut = 40968 + end + item + Command = ecLineBreak + ShortCut = 13 + end + item + Command = ecSelectAll + ShortCut = 16449 + end + item + Command = ecCopy + ShortCut = 16451 + end + item + Command = ecBlockIndent + ShortCut = 24649 + end + item + Command = ecLineBreak + ShortCut = 16461 + end + item + Command = ecInsertLine + ShortCut = 16462 + end + item + Command = ecDeleteWord + ShortCut = 16468 + end + item + Command = ecBlockUnindent + ShortCut = 24661 + end + item + Command = ecPaste + ShortCut = 16470 + end + item + Command = ecCut + ShortCut = 16472 + end + item + Command = ecDeleteLine + ShortCut = 16473 + end + item + Command = ecDeleteEOL + ShortCut = 24665 + end + item + Command = ecUndo + ShortCut = 16474 + end + item + Command = ecRedo + ShortCut = 24666 + end + item + Command = ecGotoMarker0 + ShortCut = 16432 + end + item + Command = ecGotoMarker1 + ShortCut = 16433 + end + item + Command = ecGotoMarker2 + ShortCut = 16434 + end + item + Command = ecGotoMarker3 + ShortCut = 16435 + end + item + Command = ecGotoMarker4 + ShortCut = 16436 + end + item + Command = ecGotoMarker5 + ShortCut = 16437 + end + item + Command = ecGotoMarker6 + ShortCut = 16438 + end + item + Command = ecGotoMarker7 + ShortCut = 16439 + end + item + Command = ecGotoMarker8 + ShortCut = 16440 + end + item + Command = ecGotoMarker9 + ShortCut = 16441 + end + item + Command = ecSetMarker0 + ShortCut = 24624 + end + item + Command = ecSetMarker1 + ShortCut = 24625 + end + item + Command = ecSetMarker2 + ShortCut = 24626 + end + item + Command = ecSetMarker3 + ShortCut = 24627 + end + item + Command = ecSetMarker4 + ShortCut = 24628 + end + item + Command = ecSetMarker5 + ShortCut = 24629 + end + item + Command = ecSetMarker6 + ShortCut = 24630 + end + item + Command = ecSetMarker7 + ShortCut = 24631 + end + item + Command = ecSetMarker8 + ShortCut = 24632 + end + item + Command = ecSetMarker9 + ShortCut = 24633 + end + item + Command = EcFoldLevel1 + ShortCut = 41009 + end + item + Command = EcFoldLevel2 + ShortCut = 41010 + end + item + Command = EcFoldLevel3 + ShortCut = 41011 + end + item + Command = EcFoldLevel4 + ShortCut = 41012 + end + item + Command = EcFoldLevel5 + ShortCut = 41013 + end + item + Command = EcFoldLevel6 + ShortCut = 41014 + end + item + Command = EcFoldLevel7 + ShortCut = 41015 + end + item + Command = EcFoldLevel8 + ShortCut = 41016 + end + item + Command = EcFoldLevel9 + ShortCut = 41017 + end + item + Command = EcFoldLevel0 + ShortCut = 41008 + end + item + Command = EcFoldCurrent + ShortCut = 41005 + end + item + Command = EcUnFoldCurrent + ShortCut = 41003 + end + item + Command = EcToggleMarkupWord + ShortCut = 32845 + end + item + Command = ecNormalSelect + ShortCut = 24654 + end + item + Command = ecColumnSelect + ShortCut = 24643 + end + item + Command = ecLineSelect + ShortCut = 24652 + end + item + Command = ecTab + ShortCut = 9 + end + item + Command = ecShiftTab + ShortCut = 8201 + end + item + Command = ecMatchBracket + ShortCut = 24642 + end + item + Command = ecColSelUp + ShortCut = 40998 + end + item + Command = ecColSelDown + ShortCut = 41000 + end + item + Command = ecColSelLeft + ShortCut = 40997 + end + item + Command = ecColSelRight + ShortCut = 40999 + end + item + Command = ecColSelPageDown + ShortCut = 40994 + end + item + Command = ecColSelPageBottom + ShortCut = 57378 + end + item + Command = ecColSelPageUp + ShortCut = 40993 + end + item + Command = ecColSelPageTop + ShortCut = 57377 + end + item + Command = ecColSelLineStart + ShortCut = 40996 + end + item + Command = ecColSelLineEnd + ShortCut = 40995 + end + item + Command = ecColSelEditorTop + ShortCut = 57380 + end + item + Command = ecColSelEditorBottom + ShortCut = 57379 + end> + MouseActions = <> + MouseTextActions = <> + MouseSelActions = <> + Lines.Strings = ( + 'This is <b>bold</b>, <i>italic</i>, <u>underlined</u> text.' + '<br>Some colors: <font color="Red">red</font>, <font color="green">green</font>,' + '<font color="blue">blue</font>' + '<br><font size="6">small text</font> and <font size="20">large</font> text' + '<br>A different font face: <font face="Times" size="14">Times</font>' + '<br>Subscripts and superscripts are not supported:' + '10 cm<sup>3</sup> H<sub>2</sub>O ' + ) + VisibleSpecialChars = [vscSpace, vscTabAtLast] + SelectedColor.BackPriority = 50 + SelectedColor.ForePriority = 50 + SelectedColor.FramePriority = 50 + SelectedColor.BoldPriority = 50 + SelectedColor.ItalicPriority = 50 + SelectedColor.UnderlinePriority = 50 + SelectedColor.StrikeOutPriority = 50 + BracketHighlightStyle = sbhsBoth + BracketMatchColor.Background = clNone + BracketMatchColor.Foreground = clNone + BracketMatchColor.Style = [fsBold] + FoldedCodeColor.Background = clNone + FoldedCodeColor.Foreground = clGray + FoldedCodeColor.FrameColor = clGray + MouseLinkColor.Background = clNone + MouseLinkColor.Foreground = clBlue + LineHighlightColor.Background = clNone + LineHighlightColor.Foreground = clNone + OnChange = SynEdit1Change + inline SynLeftGutterPartList1: TSynGutterPartList + object SynGutterMarks1: TSynGutterMarks + Width = 24 + MouseActions = <> + end + object SynGutterLineNumber1: TSynGutterLineNumber + Width = 17 + MouseActions = <> + MarkupInfo.Background = clBtnFace + MarkupInfo.Foreground = clNone + DigitCount = 2 + ShowOnlyLineNumbersMultiplesOf = 1 + ZeroStart = False + LeadingZeros = False + end + object SynGutterChanges1: TSynGutterChanges + Width = 4 + MouseActions = <> + ModifiedColor = 59900 + SavedColor = clGreen + end + object SynGutterSeparator1: TSynGutterSeparator + Width = 2 + MouseActions = <> + MarkupInfo.Background = clWhite + MarkupInfo.Foreground = clGray + end + object SynGutterCodeFolding1: TSynGutterCodeFolding + AutoSize = False + MouseActions = <> + MarkupInfo.Background = clNone + MarkupInfo.Foreground = clGray + MouseActionsExpanded = <> + MouseActionsCollapsed = <> + end + end + end + object Splitter1: TSplitter + Cursor = crVSplit + Left = 0 + Height = 5 + Top = 322 + Width = 740 + Align = alBottom + ResizeAnchor = akBottom + end + object Panel1: TPanel + Left = 0 + Height = 192 + Top = 327 + Width = 740 + Align = alBottom + BevelOuter = bvNone + ClientHeight = 192 + ClientWidth = 740 + TabOrder = 2 + object JvMarkupViewer1: TJvMarkupViewer + Left = 48 + Height = 100 + Top = 24 + Width = 248 + BorderSpacing.Around = 4 + BorderStyle = bsSingle + end + object JvMarkupLabel1: TJvMarkupLabel + Left = 408 + Top = 24 + BorderSpacing.Around = 4 + Color = clInfoBk + ParentColor = False + end + object Panel2: TPanel + Left = 0 + Height = 23 + Top = 169 + Width = 740 + Align = alBottom + AutoSize = True + BevelOuter = bvNone + ClientHeight = 23 + ClientWidth = 740 + TabOrder = 1 + object RbMarkupViewer: TRadioButton + AnchorSideLeft.Control = Panel2 + AnchorSideTop.Control = Panel2 + AnchorSideBottom.Side = asrBottom + Left = 4 + Height = 19 + Top = 0 + Width = 99 + BorderSpacing.Left = 4 + BorderSpacing.Bottom = 4 + Caption = 'Markup Viewer' + Checked = True + OnChange = RbMarkupViewerChange + TabOrder = 0 + TabStop = True + end + object RbMarkupLabel: TRadioButton + AnchorSideLeft.Control = RbMarkupViewer + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = RbMarkupViewer + AnchorSideTop.Side = asrCenter + Left = 119 + Height = 19 + Top = 0 + Width = 92 + BorderSpacing.Left = 16 + Caption = 'Markup Label' + OnChange = RbMarkupLabelChange + TabOrder = 1 + end + end + end + object SynHTMLSyn1: TSynHTMLSyn + DefaultFilter = 'HTML Document (*.htm,*.html)|*.htm;*.html' + Enabled = False + left = 456 + top = 192 + end +end diff --git a/components/jvcllaz/examples/JvMarkup/main.pas b/components/jvcllaz/examples/JvMarkup/main.pas new file mode 100644 index 000000000..4acf84d60 --- /dev/null +++ b/components/jvcllaz/examples/JvMarkup/main.pas @@ -0,0 +1,73 @@ +unit main; + +{$mode objfpc}{$H+} + +interface + +uses + Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls, + SynEdit, SynHighlighterHTML, JvMarkupViewer, JvMarkupLabel; + +type + + { TMainForm } + + TMainForm = class(TForm) + JvMarkupLabel1: TJvMarkupLabel; + JvMarkupViewer1: TJvMarkupViewer; + Panel1: TPanel; + Panel2: TPanel; + RbMarkupViewer: TRadioButton; + RbMarkupLabel: TRadioButton; + Splitter1: TSplitter; + SynEdit1: TSynEdit; + SynHTMLSyn1: TSynHTMLSyn; + procedure FormCreate(Sender: TObject); + procedure RbMarkupViewerChange(Sender: TObject); + procedure RbMarkupLabelChange(Sender: TObject); + procedure SynEdit1Change(Sender: TObject); + private + + public + + end; + +var + MainForm: TMainForm; + +implementation + +{$R *.lfm} + +{ TMainForm } + +procedure TMainForm.FormCreate(Sender: TObject); +begin + JvMarkupViewer1.Text := SynEdit1.Lines.Text; + JvMarkupLabel1.Text := SynEdit1.Lines.Text; + JvMarkupViewer1.Align := alClient; + JvMarkupLabel1.Align := alClient; + JvMarkupViewer1.Visible := RbMarkupViewer.Checked; + JvMarkupLabel1.Visible := RbMarkupLabel.Checked; +end; + +procedure TMainForm.RbMarkupViewerChange(Sender: TObject); +begin + JvMarkupViewer1.Visible := RbMarkupViewer.Checked; +end; + +procedure TMainForm.RbMarkupLabelChange(Sender: TObject); +begin + JvMarkupLabel1.Visible := RbMarkupLabel.Checked; +end; + +procedure TMainForm.SynEdit1Change(Sender: TObject); +begin + if JvMarkupViewer1.Visible then + JvMarkupViewer1.Text := SynEdit1.Lines.Text; + if JvMarkupLabel1.Visible then + JvMarkupLabel1.Text := SynEdit1.Lines.Text; +end; + +end. +