object Form1: TForm1 Left = 261 Height = 594 Top = 158 Width = 1301 Caption = 'JCF' ClientHeight = 594 ClientWidth = 1301 LCLVersion = '2.1.0.0' object Button1: TButton Left = 616 Height = 25 Top = 64 Width = 75 Caption = 'Format' OnClick = Button1Click TabOrder = 0 end object Memo3: TMemo Left = 11 Height = 90 Top = 491 Width = 1277 Anchors = [akLeft, akRight, akBottom] Lines.Strings = ( '' ) TabOrder = 1 end inline Memo1: TSynEdit Left = 16 Height = 424 Top = 32 Width = 592 Anchors = [akTop, akLeft, akBottom] Font.Height = -13 Font.Name = 'Courier New' Font.Pitch = fpFixed Font.Quality = fqNonAntialiased ParentColor = False ParentFont = False PopupMenu = PopupMenu1 TabOrder = 2 Gutter.Width = 57 Gutter.MouseActions = <> RightGutter.Width = 0 RightGutter.MouseActions = <> Highlighter = SynPasSyn1 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 = ( 'unit unit4;' '' '{$mode objfpc}{$H+}' '' 'interface' '' 'implementation' '' 'type' ' generic TFakeClass<_GT> = class' ' class function gmax(a, b: _GT): _GT;' ' end;' '' ' TFakeClassInt = specialize TFakeClass;' ' TFakeClassDouble = specialize TFakeClass;' '' 'class function TFakeClass.gmax(a, b: _GT): _GT;' 'begin' ' if a > b then' ' Result := a' ' else' ' Result := b;' 'end;' '' ' generic' 'function f(a: T): T;' 'begin' ' Result := a + a;' 'end;' '' 'class function f(a: T): T;' 'begin' ' Result := a + a;' 'end;' '' '' 'generic function f(a: T): T;' 'begin' ' Result := a + a;' 'end;' '' 'generic class function f(a: T): T;' 'begin' ' Result := a + a;' 'end;' '' '' '//generic' 'function Add(aLeft, aRight: T): T;' 'begin' ' Result := aLeft + aRight;' 'end;' '' 'procedure test;' 'begin' 'Writeln(specialize Add(''Generic '', ''routines'') + specialize Add('' with '', ''Free Pascal''));' 'end;' '' '' 'procedure test2;' 'begin' 'writeln( specialize f(1));' '// show max of two integers' 'writeln(''Integer GMax:'', TFakeClassInt.gmax(23, 56));' '// show max of two doubles' 'writeln(''Double GMax:'', TFakeClassDouble.gmax(23.89, 56.5));' 'readln();' 'end;' '' 'end.' ) VisibleSpecialChars = [vscSpace, vscTabAtLast] SelectedColor.BackPriority = 50 SelectedColor.ForePriority = 50 SelectedColor.FramePriority = 50 SelectedColor.BoldPriority = 50 SelectedColor.ItalicPriority = 50 SelectedColor.UnderlinePriority = 50 SelectedColor.StrikeOutPriority = 50 ScrollOnEditLeftOptions.ScrollExtraPercent = 20 ScrollOnEditLeftOptions.ScrollExtraMax = 10 ScrollOnEditRightOptions.ScrollExtraPercent = 30 ScrollOnEditRightOptions.ScrollExtraMax = 25 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 OnStatusChange = Memo1StatusChange 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 MouseActions = <> MarkupInfo.Background = clNone MarkupInfo.Foreground = clGray MouseActionsExpanded = <> MouseActionsCollapsed = <> end end end inline Memo2: TSynEdit Left = 704 Height = 472 Top = 8 Width = 587 Anchors = [akTop, akLeft, akRight, akBottom] Font.Height = -13 Font.Name = 'Courier New' Font.Pitch = fpFixed Font.Quality = fqNonAntialiased ParentColor = False ParentFont = False TabOrder = 3 Gutter.Width = 57 Gutter.MouseActions = <> RightGutter.Width = 0 RightGutter.MouseActions = <> Highlighter = SynPasSyn1 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 = ( '' ) VisibleSpecialChars = [vscSpace, vscTabAtLast] SelectedColor.BackPriority = 50 SelectedColor.ForePriority = 50 SelectedColor.FramePriority = 50 SelectedColor.BoldPriority = 50 SelectedColor.ItalicPriority = 50 SelectedColor.UnderlinePriority = 50 SelectedColor.StrikeOutPriority = 50 ScrollOnEditLeftOptions.ScrollExtraPercent = 20 ScrollOnEditLeftOptions.ScrollExtraMax = 10 ScrollOnEditRightOptions.ScrollExtraPercent = 30 ScrollOnEditRightOptions.ScrollExtraMax = 25 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 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 MouseActions = <> MarkupInfo.Background = clNone MarkupInfo.Foreground = clGray MouseActionsExpanded = <> MouseActionsCollapsed = <> end end end object edFileName: TFileNameEdit Left = 18 Height = 23 Top = 6 Width = 350 OnAcceptFileName = edFileNameAcceptFileName FilterIndex = 0 HideDirectories = False ButtonWidth = 23 NumGlyphs = 1 MaxLength = 0 TabOrder = 4 TextHint = 'filename.pas to load' end object Button2: TButton Left = 376 Height = 25 Top = 4 Width = 75 Caption = 'Load' OnClick = Button2Click TabOrder = 5 end object cbShowTree: TCheckBox Left = 616 Height = 19 Top = 40 Width = 75 Caption = 'Show Tree' TabOrder = 6 end object btnClearAndPaste: TButton Left = 520 Height = 25 Top = 4 Width = 88 Caption = 'Clear and Paste' OnClick = btnClearAndPasteClick TabOrder = 7 end object lbPos: TLabel Left = 18 Height = 15 Top = 465 Width = 152 Anchors = [akLeft, akBottom] AutoSize = False ParentColor = False end object SynPasSyn1: TSynPasSyn Enabled = False CompilerMode = pcmObjFPC NestedComments = True TypeHelpers = False Left = 644 Top = 120 end object PopupMenu1: TPopupMenu Left = 632 Top = 300 object miCut: TMenuItem Caption = 'Cut' OnClick = miCutClick end object miCopy: TMenuItem Caption = 'Copy' OnClick = miCopyClick end object miPaste: TMenuItem Caption = 'Paste' OnClick = miPasteClick end object miSelectAll: TMenuItem Caption = 'Select all' OnClick = miSelectAllClick end end end