mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-14 21:54:27 +02:00
wiki test: back, forward
git-svn-id: trunk@35861 -
This commit is contained in:
parent
be7753bef1
commit
0221e91fe4
@ -33,6 +33,7 @@ object WikiSearchDemoForm: TWikiSearchDemoForm
|
|||||||
DefaultTypeFace = 'default'
|
DefaultTypeFace = 'default'
|
||||||
DefaultFontSize = 10
|
DefaultFontSize = 10
|
||||||
FlagErrors = False
|
FlagErrors = False
|
||||||
|
PopupMenu = PagePopupMenu
|
||||||
PrintSettings.MarginLeft = 0.5
|
PrintSettings.MarginLeft = 0.5
|
||||||
PrintSettings.MarginTop = 0.5
|
PrintSettings.MarginTop = 0.5
|
||||||
PrintSettings.MarginRight = 0.5
|
PrintSettings.MarginRight = 0.5
|
||||||
@ -47,32 +48,39 @@ object WikiSearchDemoForm: TWikiSearchDemoForm
|
|||||||
Top = 1
|
Top = 1
|
||||||
Width = 336
|
Width = 336
|
||||||
Caption = 'PageToolBar'
|
Caption = 'PageToolBar'
|
||||||
|
Images = ImageList1
|
||||||
ShowCaptions = True
|
ShowCaptions = True
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
object ShowSearchToolButton: TToolButton
|
object ShowSearchToolButton: TToolButton
|
||||||
Left = 1
|
Left = 1
|
||||||
Top = 2
|
Top = 2
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
Caption = 'Search'
|
ImageIndex = 1
|
||||||
OnClick = ShowSearchToolButtonClick
|
OnClick = ShowSearchToolButtonClick
|
||||||
ParentShowHint = False
|
ParentShowHint = False
|
||||||
ShowHint = True
|
ShowHint = True
|
||||||
Visible = False
|
Visible = False
|
||||||
end
|
end
|
||||||
object ShowHTMLToolButton: TToolButton
|
object SearchSepToolButton: TToolButton
|
||||||
Left = 47
|
Left = 24
|
||||||
Top = 2
|
Top = 2
|
||||||
AutoSize = True
|
Width = 5
|
||||||
Caption = 'HTML'
|
Caption = 'SearchSepToolButton'
|
||||||
OnClick = ShowHTMLToolButtonClick
|
Style = tbsDivider
|
||||||
|
end
|
||||||
|
object BackToolButton: TToolButton
|
||||||
|
Left = 29
|
||||||
|
Top = 2
|
||||||
|
ImageIndex = 2
|
||||||
|
OnClick = BackToolButtonClick
|
||||||
ParentShowHint = False
|
ParentShowHint = False
|
||||||
ShowHint = True
|
ShowHint = True
|
||||||
end
|
end
|
||||||
object ShowWikiSrcToolButton: TToolButton
|
object ForwardToolButton: TToolButton
|
||||||
Left = 85
|
Left = 52
|
||||||
Top = 2
|
Top = 2
|
||||||
Caption = 'Source'
|
ImageIndex = 3
|
||||||
OnClick = ShowWikiSrcToolButtonClick
|
OnClick = ForwardToolButtonClick
|
||||||
ParentShowHint = False
|
ParentShowHint = False
|
||||||
ShowHint = True
|
ShowHint = True
|
||||||
end
|
end
|
||||||
@ -210,4 +218,152 @@ object WikiSearchDemoForm: TWikiSearchDemoForm
|
|||||||
left = 411
|
left = 411
|
||||||
top = 139
|
top = 139
|
||||||
end
|
end
|
||||||
|
object ImageList1: TImageList
|
||||||
|
left = 211
|
||||||
|
top = 175
|
||||||
|
Bitmap = {
|
||||||
|
4C69040000001000000010000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000858A884C858A
|
||||||
|
88FF858A884C0000000000000000000000000000000000000000000000000000
|
||||||
|
004C858A88FF858A884C00000000000000000000000000000000858A88FFE9EB
|
||||||
|
ECFF858A88FF858A884C000000000000000000000000000000000000004C858A
|
||||||
|
88FFEEEFEFFC858A88FF0000000000000000000000000000000000000000858A
|
||||||
|
88FFEEF0F0FF858A88FF00000000000000000000000000000000858A88FFF0F0
|
||||||
|
F0FF858A88FF0000004C00000000858A884C858A88FF00000000858A884C858A
|
||||||
|
88FFFAFAFAFF858A88FF000000000000000000000000858A884C858A88FF878C
|
||||||
|
8AFF0000004C0000000000000000858A88FFF5F6F6FEA9ACABFF858A88FFF7F7
|
||||||
|
F7FFE2E3E5FFAAADADFFECEEEE8100000000858A884C858A88FF858A884C0000
|
||||||
|
0000000000000000000000000000858A884C858A88FFF3F3F3FEEFF0F0FFEDEE
|
||||||
|
EEFEEAECECFEB6B9BAFF858A88FF858A884C858A88FF858A884C000000000000
|
||||||
|
000000000000000000000000000000000000858A884C858A88FF858A88FF858A
|
||||||
|
88FF858A88FFD0D1D2FFA3A4A4FF858A88FF858A888100000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
000000000000B5B7B8FF858A88FFB7B8B9FF858A88FF858A884C000000020000
|
||||||
|
00000000000000000000000000000000000000000000874A2019874A20FF874A
|
||||||
|
20FF874A20FF85837DFFAAADADFFC8C9CAFFBDBEBFFF858A88FF858A884C0000
|
||||||
|
000000000000000000000000000000000000874A2019874A20FFCCBBADFFCCBB
|
||||||
|
ADFFB3937CFF874A20FF858A8881858A88FFD3D3D4FFBDBEBFFF858A88FF858A
|
||||||
|
884C000000020000000000000000874A2030874A20FFD4C8BDFFA48D78FFA48D
|
||||||
|
78FFBEA592FF874A20FF00000000858A884C858A88FFE2E3E4FFC2C4C6FF858A
|
||||||
|
88FF858A88810000000000000000874A20FFCCBBADFFA48D78FFA28A74FFB495
|
||||||
|
7AFFB3937CFF874A20FF0000000000000000858A884C858A88FFD2D3D4FFC2C3
|
||||||
|
C4FF858A88FF0000000000000000874A20FFCCBBADFFA7917DFFB5957AFFAE8B
|
||||||
|
72FF874A20FF874A2044000000000000000000000000858A884C858A88FF9EA1
|
||||||
|
A0FF858A88FF0000000000000000874A20FFBEA592FFB89C86FFB89C86FF874A
|
||||||
|
20FF874A20440000000000000000000000000000000000000000858A8881858A
|
||||||
|
88D3858A88810000000000000000874A2056874A20FF874A20FF874A20FF874A
|
||||||
|
2044000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF009C8F
|
||||||
|
83E2BCB0A4FF9D9185FFFFFFFF00AEA093FF9D9185FF655D55DAFFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008E83
|
||||||
|
78E2C3B8AEFF655D55FFFFFFFF007C7268FFA89B8EFF9C8F83E4FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00746B62FFA4978AFF9589
|
||||||
|
7DFF9F9286FF3E3934FFFFFFFF004C4640FF7E746AFF857A70FF3E3934FF453F
|
||||||
|
3AA72522200C15131102FFFFFF00B9ACA008877D72489B8E82FF9D9185FF867B
|
||||||
|
71FF564F48FF504A44FF80766CFF6E665DFF826C58FFA6917DFF948474FF564F
|
||||||
|
48FF0C0B0B7A07070601FFFFFF00AB9D9004AFA194E1BAAEA2FF82776DFF8277
|
||||||
|
6DFFAA917BFFBAA794FFB7A48EFAB09781FF9F8D7DFF836D5BFF716357FF9589
|
||||||
|
7DFF040403E000000003FFFFFF009F9286059D9185FFB1A396FF7F756BFF7C72
|
||||||
|
68FF776D64FF6C635BFF2E2A26FF564F48FF80766CFF7C7268FF776D64FF7067
|
||||||
|
5EFF000000FE00000005FFFFFF00797066055C554EF9423D38FF58514AFF3D38
|
||||||
|
33FF332F2BFF23201DE5171614301E1C19B51A1816FF252220FF191715FF0F0E
|
||||||
|
0DFF010101EE00000002FFFFFF00FFFFFF005A524CC39F9286FFCCC3BAFFC0B4
|
||||||
|
AAFFA6988BFF3E3934A8FFFFFF002C2925A8908479FFC2B8ADFFC0B4AAFFA89B
|
||||||
|
8EFF110F0EC3FFFFFF00FFFFFF00FFFFFF00534C46FC83786FFFCCC3BAFF7970
|
||||||
|
66FF71685FFF37332ED5FFFFFF00252220D5857A70FFC2B8ADFF786F65FF7B71
|
||||||
|
67FF0A0908FCFFFFFF00FFFFFF00FFFFFF004D4741FF83786FFFCCC3BAFF786F
|
||||||
|
65FF7B7167FF2F2B28F9272421011D1B18EE95897DFFC2B8ADFF786F65FF7C72
|
||||||
|
68FF060505FFFFFFFF00FFFFFF00FFFFFF0046413BFF857A70FFC3B8AEFF7C72
|
||||||
|
68FF7F756BFF36322DFF1E1C190F282522D495897DFFBAAEA2FF7C7268FF7F75
|
||||||
|
6BFF010101FFFFFFFF00FFFFFF00FFFFFF003E3934FF393430FF332F2BFF2C29
|
||||||
|
25FF272421FF201D1BFF1716141A110F0EDB0B0A09FF070706FF040403FF0000
|
||||||
|
00FF000000FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0068C7740668C7
|
||||||
|
74BBFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0068C774DB65C3
|
||||||
|
71F7FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0068C774D180CD8BFF7CC9
|
||||||
|
87FF5DB868FF58B162FF53A95CFF4DA156FF47994FFF419149FF3B8842FF3580
|
||||||
|
3BFF2F7835FF2A702FFFFFFFFF00FFFFFF0068C774C97FCC8AFFA2D8ABFF9ED6
|
||||||
|
A7FF9AD4A3FF96D29FFF93CF9AFF8ECC95FF89CA90FF85C78BFF81C587FF7DC2
|
||||||
|
82FF78C07EFF256929FFFFFFFF00FFFFFF0065C371C47BC886FF9CD5A5FF98D3
|
||||||
|
A1FF94D09DFF90CE98FF8BCB93FF87C98EFF82C689FF7EC384FF7AC180FF76BE
|
||||||
|
7CFF72BD78FF216324FFFFFFFF00FFFFFF00FFFFFF005DB868CF71BE7BFF7AC1
|
||||||
|
83FF5BAA64FF47994FFF419149FF3B8842FF35803BFF2F7835FF2A702FFF2569
|
||||||
|
29FF216324FF1D5E20FFFFFFFF00FFFFFF00FFFFFF00FFFFFF0053A95CD94DA1
|
||||||
|
56F747994F38FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004DA156064799
|
||||||
|
4FB8FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0047994FBB4191
|
||||||
|
4906FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00419149F73B88
|
||||||
|
42DBFFFFFF00FFFFFF00FFFFFF00FFFFFF0068C774FF68C774FF65C371FF61BE
|
||||||
|
6DFF5DB868FF58B162FF53A95CFF4DA156FF47994FFF419149FF5AA362FF559D
|
||||||
|
5CFF2F7835D1FFFFFF00FFFFFF00FFFFFF0068C774FFA5DAAEFFA2D8ABFF9ED6
|
||||||
|
A7FF9AD4A3FF96D29FFF93CF9AFF8ECC95FF89CA90FF85C78BFF81C587FF7DC2
|
||||||
|
82FF4A9150FF256929C9FFFFFF00FFFFFF0065C371FFA0D7A9FF9CD5A5FF98D3
|
||||||
|
A1FF94D09DFF90CE98FF8BCB93FF87C98EFF82C689FF7EC384FF7AC180FF76BE
|
||||||
|
7CFF458C4AFF216324C4FFFFFF00FFFFFF0061BE6DFF5DB868FF58B162FF53A9
|
||||||
|
5CFF4DA156FF47994FFF419149FF3B8842FF35803BFF3F8845FF59A15EFF448B
|
||||||
|
49FF216324CFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF002A702F38256929F72163
|
||||||
|
24D9FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00216324B81D5E
|
||||||
|
2006FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
|
}
|
||||||
|
end
|
||||||
|
object PagePopupMenu: TPopupMenu
|
||||||
|
OnPopup = PagePopupMenuPopup
|
||||||
|
left = 456
|
||||||
|
top = 139
|
||||||
|
object ViewHTMLMenuItem: TMenuItem
|
||||||
|
Caption = 'ViewHTMLMenuItem'
|
||||||
|
OnClick = ViewHTMLMenuItemClick
|
||||||
|
end
|
||||||
|
object ViewWikiSourceMenuItem: TMenuItem
|
||||||
|
Caption = 'ViewWikiSourceMenuItem'
|
||||||
|
OnClick = ViewWikiSourceMenuItemClick
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -27,9 +27,9 @@ interface
|
|||||||
uses
|
uses
|
||||||
Classes, SysUtils, math, FileUtil, LazLogger, LazUTF8, LazFileUtils, laz2_DOM,
|
Classes, SysUtils, math, FileUtil, LazLogger, LazUTF8, LazFileUtils, laz2_DOM,
|
||||||
Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, ComCtrls, LCLIntf,
|
Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, ComCtrls, LCLIntf,
|
||||||
IpHtml, Ipfilebroker, IpMsg,
|
Menus, IpHtml, Ipfilebroker, IpMsg, CodeToolManager, CodeCache, SynEdit,
|
||||||
CodeToolManager, CodeCache, SynEdit, SynHighlighterHTML, SynEditHighlighter,
|
SynHighlighterHTML, SynEditHighlighter, WikiHelpManager, WikiSearchOptions,
|
||||||
WikiHelpManager, WikiSearchOptions, WikiParser, WikiFormat;
|
WikiParser, WikiFormat;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
@ -42,13 +42,49 @@ type
|
|||||||
public
|
public
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ TWikiPageHistoryItem }
|
||||||
|
|
||||||
|
TWikiPageHistoryItem = class
|
||||||
|
public
|
||||||
|
DocumentName: string;
|
||||||
|
Anchor: string;
|
||||||
|
Title: string;
|
||||||
|
constructor Create(TheDocumentName, TheAnchor, TheTitle: string);
|
||||||
|
end;
|
||||||
|
|
||||||
|
TWikiPageHistory = class
|
||||||
|
private
|
||||||
|
FCurrentIndex: integer;
|
||||||
|
FItems: TFPList; // list of TWikiPageHistoryItem
|
||||||
|
FMaxCount: integer;
|
||||||
|
function GetCurrent: TWikiPageHistoryItem;
|
||||||
|
function GetItems(Index: integer): TWikiPageHistoryItem;
|
||||||
|
procedure SetCurrentIndex(AValue: integer);
|
||||||
|
procedure SetMaxCount(AValue: integer);
|
||||||
|
public
|
||||||
|
constructor Create;
|
||||||
|
destructor Destroy; override;
|
||||||
|
procedure Clear;
|
||||||
|
property CurrentIndex: integer read FCurrentIndex write SetCurrentIndex;
|
||||||
|
property Current: TWikiPageHistoryItem read GetCurrent;
|
||||||
|
property Items[Index: integer]: TWikiPageHistoryItem read GetItems; default;
|
||||||
|
function Count: integer;
|
||||||
|
property MaxCount: integer read FMaxCount write SetMaxCount;
|
||||||
|
function AddAfterCurrent(DocumentName, Anchor, Title: string): TWikiPageHistoryItem;
|
||||||
|
procedure Delete(Index: integer);
|
||||||
|
end;
|
||||||
|
|
||||||
{ TWikiSearchDemoForm }
|
{ TWikiSearchDemoForm }
|
||||||
|
|
||||||
TWikiSearchDemoForm = class(TForm)
|
TWikiSearchDemoForm = class(TForm)
|
||||||
HideSearchButton: TButton;
|
HideSearchButton: TButton;
|
||||||
|
ImageList1: TImageList;
|
||||||
|
ViewWikiSourceMenuItem: TMenuItem;
|
||||||
|
ViewHTMLMenuItem: TMenuItem;
|
||||||
OptionsButton: TButton;
|
OptionsButton: TButton;
|
||||||
PagePanel: TPanel;
|
PagePanel: TPanel;
|
||||||
PageIpHtmlPanel: TIpHtmlPanel;
|
PageIpHtmlPanel: TIpHtmlPanel;
|
||||||
|
PagePopupMenu: TPopupMenu;
|
||||||
PageToolBar: TToolBar;
|
PageToolBar: TToolBar;
|
||||||
ProgressLabel: TLabel;
|
ProgressLabel: TLabel;
|
||||||
ResultsIpHtmlPanel: TIpHtmlPanel;
|
ResultsIpHtmlPanel: TIpHtmlPanel;
|
||||||
@ -59,45 +95,55 @@ type
|
|||||||
SynHTMLSyn1: TSynHTMLSyn;
|
SynHTMLSyn1: TSynHTMLSyn;
|
||||||
Timer1: TTimer;
|
Timer1: TTimer;
|
||||||
ShowSearchToolButton: TToolButton;
|
ShowSearchToolButton: TToolButton;
|
||||||
ShowHTMLToolButton: TToolButton;
|
SearchSepToolButton: TToolButton;
|
||||||
ShowWikiSrcToolButton: TToolButton;
|
BackToolButton: TToolButton;
|
||||||
|
ForwardToolButton: TToolButton;
|
||||||
|
procedure BackToolButtonClick(Sender: TObject);
|
||||||
function DataProviderCanHandle(Sender: TObject; const {%H-}URL: string): Boolean;
|
function DataProviderCanHandle(Sender: TObject; const {%H-}URL: string): Boolean;
|
||||||
procedure DataProviderGetImage(Sender: TIpHtmlNode; const URL: string;
|
procedure DataProviderGetImage(Sender: TIpHtmlNode; const URL: string;
|
||||||
var Picture: TPicture);
|
var Picture: TPicture);
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure FormDestroy(Sender: TObject);
|
procedure FormDestroy(Sender: TObject);
|
||||||
|
procedure ForwardToolButtonClick(Sender: TObject);
|
||||||
procedure HideSearchButtonClick(Sender: TObject);
|
procedure HideSearchButtonClick(Sender: TObject);
|
||||||
procedure LanguagesEditChange(Sender: TObject);
|
procedure LanguagesEditChange(Sender: TObject);
|
||||||
procedure IpHtmlPanelHotClick(Sender: TObject);
|
procedure IpHtmlPanelHotClick(Sender: TObject);
|
||||||
procedure OptionsButtonClick(Sender: TObject);
|
procedure OptionsButtonClick(Sender: TObject);
|
||||||
|
procedure PagePopupMenuPopup(Sender: TObject);
|
||||||
procedure SearchEditChange(Sender: TObject);
|
procedure SearchEditChange(Sender: TObject);
|
||||||
procedure ShowHTMLToolButtonClick(Sender: TObject);
|
procedure ViewHTMLMenuItemClick(Sender: TObject);
|
||||||
procedure ShowSearchToolButtonClick(Sender: TObject);
|
procedure ShowSearchToolButtonClick(Sender: TObject);
|
||||||
procedure ShowWikiSrcToolButtonClick(Sender: TObject);
|
procedure ViewWikiSourceMenuItemClick(Sender: TObject);
|
||||||
procedure Timer1Timer(Sender: TObject);
|
procedure Timer1Timer(Sender: TObject);
|
||||||
private
|
private
|
||||||
fLastSearchText: string;
|
fLastSearchText: string;
|
||||||
fLastLanguages: string;
|
fLastLanguages: string;
|
||||||
fLastScoring: TWHScoring;
|
fLastScoring: TWHScoring;
|
||||||
FIdleConnected: boolean;
|
FIdleConnected: boolean;
|
||||||
|
FPageHistory: TWikiPageHistory;
|
||||||
FURLDataProvider: TWikiIpHtmlDataProvider;
|
FURLDataProvider: TWikiIpHtmlDataProvider;
|
||||||
FPageDocumentName: string;
|
FPageDocumentName: string;
|
||||||
FPageAnchor: string;
|
FPageAnchor: string;
|
||||||
FPageSource: string;
|
FPageSource: string;
|
||||||
|
FPageTitle: string;
|
||||||
|
procedure GoToHistoryPage(Index: integer);
|
||||||
procedure QueryChanged;
|
procedure QueryChanged;
|
||||||
procedure SetIdleConnected(AValue: boolean);
|
procedure SetIdleConnected(AValue: boolean);
|
||||||
|
procedure UpdateHistoryButtons;
|
||||||
procedure UpdateProgress;
|
procedure UpdateProgress;
|
||||||
|
procedure LoadWikiPage(Documentname, Anchor: string; AddToHistory: boolean);
|
||||||
procedure LoadHTML(Target: TIpHtmlPanel; HTML: string); overload;
|
procedure LoadHTML(Target: TIpHtmlPanel; HTML: string); overload;
|
||||||
procedure LoadHTML(Target: TIpHtmlPanel; aStream: TStream); overload;
|
procedure LoadHTML(Target: TIpHtmlPanel; aStream: TStream); overload;
|
||||||
procedure ShowOptions;
|
|
||||||
procedure ViewSource(aTitle, aSource: string; aHighlighter: TSynCustomHighlighter);
|
procedure ViewSource(aTitle, aSource: string; aHighlighter: TSynCustomHighlighter);
|
||||||
procedure WikiSearchOptsWndOptionsChanged(Sender: TObject);
|
procedure WikiSearchOptsWndOptionsChanged(Sender: TObject);
|
||||||
procedure WikiHelpScanned(Sender: TObject);
|
procedure WikiHelpScanned(Sender: TObject);
|
||||||
procedure WikiHelpSearched(Sender: TObject);
|
procedure WikiHelpSearched(Sender: TObject);
|
||||||
procedure OnIdle(Sender: TObject; var {%H-}Done: Boolean);
|
procedure OnIdle(Sender: TObject; var {%H-}Done: Boolean);
|
||||||
function GetLanguages: string;
|
|
||||||
public
|
public
|
||||||
property IdleConnected: boolean read FIdleConnected write SetIdleConnected;
|
property IdleConnected: boolean read FIdleConnected write SetIdleConnected;
|
||||||
|
procedure ShowOptions;
|
||||||
|
function GetLanguages: string;
|
||||||
|
property PageHistory: TWikiPageHistory read FPageHistory;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -105,6 +151,89 @@ var
|
|||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
function TWikiPageHistory.GetItems(Index: integer): TWikiPageHistoryItem;
|
||||||
|
begin
|
||||||
|
Result:=TWikiPageHistoryItem(FItems[Index]);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TWikiPageHistory.GetCurrent: TWikiPageHistoryItem;
|
||||||
|
begin
|
||||||
|
if (CurrentIndex>=0) and (CurrentIndex<Count) then
|
||||||
|
Result:=Items[CurrentIndex]
|
||||||
|
else
|
||||||
|
Result:=nil;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TWikiPageHistory.SetCurrentIndex(AValue: integer);
|
||||||
|
var
|
||||||
|
NewValue: Integer;
|
||||||
|
begin
|
||||||
|
NewValue:=AValue;
|
||||||
|
if NewValue<-1 then NewValue:=-1;
|
||||||
|
if NewValue>=Count then NewValue:=Count-1;
|
||||||
|
if FCurrentIndex=NewValue then Exit;
|
||||||
|
FCurrentIndex:=NewValue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TWikiPageHistory.SetMaxCount(AValue: integer);
|
||||||
|
begin
|
||||||
|
if FMaxCount=AValue then Exit;
|
||||||
|
FMaxCount:=AValue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
constructor TWikiPageHistory.Create;
|
||||||
|
begin
|
||||||
|
FItems:=TFPList.Create;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TWikiPageHistory.Destroy;
|
||||||
|
begin
|
||||||
|
Clear;
|
||||||
|
FreeAndNil(FItems);
|
||||||
|
inherited Destroy;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TWikiPageHistory.Clear;
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
for i:=0 to FItems.Count-1 do
|
||||||
|
TObject(FItems[i]).Free;
|
||||||
|
FItems.Clear;
|
||||||
|
FCurrentIndex:=-1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TWikiPageHistory.Count: integer;
|
||||||
|
begin
|
||||||
|
Result:=FItems.Count;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TWikiPageHistory.AddAfterCurrent(DocumentName, Anchor, Title: string
|
||||||
|
): TWikiPageHistoryItem;
|
||||||
|
begin
|
||||||
|
while Count>CurrentIndex+1 do
|
||||||
|
Delete(Count-1);
|
||||||
|
Result:=TWikiPageHistoryItem.Create(DocumentName,Anchor,Title);
|
||||||
|
FItems.Add(Result);
|
||||||
|
FCurrentIndex:=FItems.Count-1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TWikiPageHistory.Delete(Index: integer);
|
||||||
|
begin
|
||||||
|
TObject(FItems[Index]).Free;
|
||||||
|
FItems.Delete(Index);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TWikiPageHistoryItem }
|
||||||
|
|
||||||
|
constructor TWikiPageHistoryItem.Create(TheDocumentName, TheAnchor,
|
||||||
|
TheTitle: string);
|
||||||
|
begin
|
||||||
|
DocumentName:=TheDocumentName;
|
||||||
|
Anchor:=TheAnchor;
|
||||||
|
Title:=TheTitle;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TWikiIpHtmlDataProvider }
|
{ TWikiIpHtmlDataProvider }
|
||||||
|
|
||||||
function TWikiIpHtmlDataProvider.DoGetStream(const URL: string): TStream;
|
function TWikiIpHtmlDataProvider.DoGetStream(const URL: string): TStream;
|
||||||
@ -130,6 +259,8 @@ procedure TWikiSearchDemoForm.FormCreate(Sender: TObject);
|
|||||||
var
|
var
|
||||||
Code: TCodeBuffer;
|
Code: TCodeBuffer;
|
||||||
begin
|
begin
|
||||||
|
FPageHistory:=TWikiPageHistory.Create;
|
||||||
|
|
||||||
Caption:='Search Wiki (Proof of concept)';
|
Caption:='Search Wiki (Proof of concept)';
|
||||||
|
|
||||||
// search panel
|
// search panel
|
||||||
@ -140,10 +271,11 @@ begin
|
|||||||
OptionsButton.Caption:='Options';
|
OptionsButton.Caption:='Options';
|
||||||
|
|
||||||
// page panel
|
// page panel
|
||||||
ShowSearchToolButton.Caption:='Search';
|
ShowSearchToolButton.Hint:='Search';
|
||||||
ShowHTMLToolButton.Hint:='View HTML Source';
|
BackToolButton.Hint:='Go back one page';
|
||||||
ShowWikiSrcToolButton.Caption:='Source';
|
ForwardToolButton.Hint:='Go forward one page';
|
||||||
ShowWikiSrcToolButton.Hint:='View Wiki Source';
|
ViewHTMLMenuItem.Caption:='View HTML Source';
|
||||||
|
ViewWikiSourceMenuItem.Caption:='View Wiki Source';
|
||||||
|
|
||||||
FURLDataProvider:=TWikiIpHtmlDataProvider.Create(nil);
|
FURLDataProvider:=TWikiIpHtmlDataProvider.Create(nil);
|
||||||
ResultsIpHtmlPanel.DataProvider:=FURLDataProvider;
|
ResultsIpHtmlPanel.DataProvider:=FURLDataProvider;
|
||||||
@ -165,6 +297,7 @@ begin
|
|||||||
if Code<>nil then
|
if Code<>nil then
|
||||||
WikiHelp.ResultsCSS:=Code.Source;
|
WikiHelp.ResultsCSS:=Code.Source;
|
||||||
|
|
||||||
|
UpdateHistoryButtons;
|
||||||
LoadHTML(ResultsIpHtmlPanel,'');
|
LoadHTML(ResultsIpHtmlPanel,'');
|
||||||
LoadHTML(PageIpHtmlPanel,'');
|
LoadHTML(PageIpHtmlPanel,'');
|
||||||
|
|
||||||
@ -180,6 +313,12 @@ begin
|
|||||||
Result:=false;
|
Result:=false;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TWikiSearchDemoForm.BackToolButtonClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if PageHistory.CurrentIndex<=0 then exit;
|
||||||
|
GoToHistoryPage(PageHistory.CurrentIndex-1);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TWikiSearchDemoForm.DataProviderGetImage(Sender: TIpHtmlNode;
|
procedure TWikiSearchDemoForm.DataProviderGetImage(Sender: TIpHtmlNode;
|
||||||
const URL: string; var Picture: TPicture);
|
const URL: string; var Picture: TPicture);
|
||||||
var
|
var
|
||||||
@ -209,15 +348,26 @@ end;
|
|||||||
procedure TWikiSearchDemoForm.FormDestroy(Sender: TObject);
|
procedure TWikiSearchDemoForm.FormDestroy(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
IdleConnected:=false;
|
IdleConnected:=false;
|
||||||
|
|
||||||
|
// free tool windows
|
||||||
FreeAndNil(WikiSearchOptsWnd);
|
FreeAndNil(WikiSearchOptsWnd);
|
||||||
|
|
||||||
// free pages before dataprovider
|
// free pages before dataprovider
|
||||||
FreeAndNil(ResultsIpHtmlPanel);
|
FreeAndNil(ResultsIpHtmlPanel);
|
||||||
FreeAndNil(PageIpHtmlPanel);
|
FreeAndNil(PageIpHtmlPanel);
|
||||||
FreeAndNil(FURLDataProvider);
|
FreeAndNil(FURLDataProvider);
|
||||||
|
|
||||||
|
FreeAndNil(FPageHistory);
|
||||||
FreeAndNil(WikiHelp);
|
FreeAndNil(WikiHelp);
|
||||||
FreeAndNil(fLastScoring);
|
FreeAndNil(fLastScoring);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TWikiSearchDemoForm.ForwardToolButtonClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if PageHistory.CurrentIndex>=PageHistory.Count-1 then exit;
|
||||||
|
GoToHistoryPage(PageHistory.CurrentIndex+1);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TWikiSearchDemoForm.HideSearchButtonClick(Sender: TObject);
|
procedure TWikiSearchDemoForm.HideSearchButtonClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
DisableAutoSizing;
|
DisableAutoSizing;
|
||||||
@ -255,8 +405,6 @@ var
|
|||||||
HotNode: TIpHtmlNode;
|
HotNode: TIpHtmlNode;
|
||||||
HRef: String;
|
HRef: String;
|
||||||
Panel: TIpHtmlPanel;
|
Panel: TIpHtmlPanel;
|
||||||
ms: TMemoryStream;
|
|
||||||
Src: String;
|
|
||||||
DocumentName: String;
|
DocumentName: String;
|
||||||
p: SizeInt;
|
p: SizeInt;
|
||||||
AnchorName: String;
|
AnchorName: String;
|
||||||
@ -277,39 +425,14 @@ begin
|
|||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// open page in PageIpHtmlPanel
|
// load wiki page
|
||||||
ms:=TMemoryStream.Create;
|
|
||||||
try
|
|
||||||
try
|
|
||||||
DocumentName:=HRef;
|
DocumentName:=HRef;
|
||||||
p:=Pos('#',DocumentName);
|
p:=Pos('#',DocumentName);
|
||||||
if p>0 then begin
|
if p>0 then begin
|
||||||
DocumentName:=LeftStr(DocumentName,p-1);
|
DocumentName:=LeftStr(DocumentName,p-1);
|
||||||
AnchorName:=copy(DocumentName,p+1,length(DocumentName));
|
AnchorName:=copy(DocumentName,p+1,length(DocumentName));
|
||||||
// ToDo: anchor
|
|
||||||
end;
|
|
||||||
WikiHelp.SavePageToStream(DocumentName,ms);
|
|
||||||
ms.Position:=0;
|
|
||||||
SetLength(Src,ms.Size);
|
|
||||||
if Src<>'' then
|
|
||||||
ms.Read(Src[1],length(Src));
|
|
||||||
ms.Position:=0;
|
|
||||||
LoadHTML(PageIpHtmlPanel,ms);
|
|
||||||
FPageDocumentName:=DocumentName;
|
|
||||||
FPageAnchor:=AnchorName;
|
|
||||||
FPageSource:=Src;
|
|
||||||
except
|
|
||||||
on E: Exception do begin
|
|
||||||
Src:='<html><body>Error: '+EncodeLesserAndGreaterThan(E.Message)+'</body></html>';
|
|
||||||
LoadHTML(PageIpHtmlPanel,Src);
|
|
||||||
FPageDocumentName:='';
|
|
||||||
FPageAnchor:='';
|
|
||||||
FPageSource:=Src;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
finally
|
|
||||||
ms.Free;
|
|
||||||
end;
|
end;
|
||||||
|
LoadWikiPage(DocumentName,AnchorName,true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TWikiSearchDemoForm.OptionsButtonClick(Sender: TObject);
|
procedure TWikiSearchDemoForm.OptionsButtonClick(Sender: TObject);
|
||||||
@ -317,12 +440,18 @@ begin
|
|||||||
ShowOptions;
|
ShowOptions;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TWikiSearchDemoForm.PagePopupMenuPopup(Sender: TObject);
|
||||||
|
begin
|
||||||
|
ViewHTMLMenuItem.Enabled:=FPageDocumentName<>'';
|
||||||
|
ViewWikiSourceMenuItem.Enabled:=FPageDocumentName<>'';
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TWikiSearchDemoForm.SearchEditChange(Sender: TObject);
|
procedure TWikiSearchDemoForm.SearchEditChange(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
IdleConnected:=true;
|
IdleConnected:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TWikiSearchDemoForm.ShowHTMLToolButtonClick(Sender: TObject);
|
procedure TWikiSearchDemoForm.ViewHTMLMenuItemClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
if (FPageDocumentName='') then exit;
|
if (FPageDocumentName='') then exit;
|
||||||
ViewSource('HTML of '+FPageDocumentName,FPageSource,SynHTMLSyn1);
|
ViewSource('HTML of '+FPageDocumentName,FPageSource,SynHTMLSyn1);
|
||||||
@ -342,7 +471,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TWikiSearchDemoForm.ShowWikiSrcToolButtonClick(Sender: TObject);
|
procedure TWikiSearchDemoForm.ViewWikiSourceMenuItemClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
Page: TW2FormatPage;
|
Page: TW2FormatPage;
|
||||||
begin
|
begin
|
||||||
@ -404,6 +533,16 @@ begin
|
|||||||
Timer1.Enabled:=true;
|
Timer1.Enabled:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TWikiSearchDemoForm.GoToHistoryPage(Index: integer);
|
||||||
|
var
|
||||||
|
CurPage: TWikiPageHistoryItem;
|
||||||
|
begin
|
||||||
|
PageHistory.CurrentIndex:=Index;
|
||||||
|
CurPage:=PageHistory.Current;
|
||||||
|
LoadWikiPage(CurPage.DocumentName, CurPage.Anchor, false);
|
||||||
|
UpdateHistoryButtons;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TWikiSearchDemoForm.SetIdleConnected(AValue: boolean);
|
procedure TWikiSearchDemoForm.SetIdleConnected(AValue: boolean);
|
||||||
begin
|
begin
|
||||||
if FIdleConnected=AValue then Exit;
|
if FIdleConnected=AValue then Exit;
|
||||||
@ -414,12 +553,64 @@ begin
|
|||||||
Application.RemoveOnIdleHandler(@OnIdle);
|
Application.RemoveOnIdleHandler(@OnIdle);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TWikiSearchDemoForm.UpdateHistoryButtons;
|
||||||
|
begin
|
||||||
|
BackToolButton.Visible:=PageHistory.CurrentIndex>0;
|
||||||
|
ForwardToolButton.Visible:=PageHistory.CurrentIndex+1<PageHistory.Count;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TWikiSearchDemoForm.UpdateProgress;
|
procedure TWikiSearchDemoForm.UpdateProgress;
|
||||||
begin
|
begin
|
||||||
ProgressLabel.Caption:=WikiHelp.GetProgressCaption;
|
ProgressLabel.Caption:=WikiHelp.GetProgressCaption;
|
||||||
Timer1.Enabled:=WikiHelp.Busy;
|
Timer1.Enabled:=WikiHelp.Busy;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TWikiSearchDemoForm.LoadWikiPage(Documentname, Anchor: string;
|
||||||
|
AddToHistory: boolean);
|
||||||
|
var
|
||||||
|
ms: TMemoryStream;
|
||||||
|
Src: string;
|
||||||
|
Page: TW2FormatPage;
|
||||||
|
begin
|
||||||
|
// open page in PageIpHtmlPanel
|
||||||
|
ms:=TMemoryStream.Create;
|
||||||
|
try
|
||||||
|
try
|
||||||
|
WikiHelp.SavePageToStream(DocumentName,ms);
|
||||||
|
Page:=WikiHelp.Converter.GetPageWithDocumentName(Documentname);
|
||||||
|
ms.Position:=0;
|
||||||
|
SetLength(Src,ms.Size);
|
||||||
|
if Src<>'' then
|
||||||
|
ms.Read(Src[1],length(Src));
|
||||||
|
ms.Position:=0;
|
||||||
|
// ToDo: anchor
|
||||||
|
LoadHTML(PageIpHtmlPanel,ms);
|
||||||
|
FPageDocumentName:=DocumentName;
|
||||||
|
FPageAnchor:=Anchor;
|
||||||
|
FPageSource:=Src;
|
||||||
|
if (Page<>nil) and (Page.WikiPage<>nil) then
|
||||||
|
FPageTitle:=Page.WikiPage.Title
|
||||||
|
else
|
||||||
|
FPageTitle:=Documentname;
|
||||||
|
except
|
||||||
|
on E: Exception do begin
|
||||||
|
FPageDocumentName:='';
|
||||||
|
FPageAnchor:='';
|
||||||
|
FPageSource:=Src;
|
||||||
|
FPageTitle:='Error: '+E.Message;
|
||||||
|
Src:='<html><body>'+EncodeLesserAndGreaterThan(FPageTitle)+'</body></html>';
|
||||||
|
LoadHTML(PageIpHtmlPanel,Src);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
ms.Free;
|
||||||
|
end;
|
||||||
|
if AddToHistory and (FPageDocumentName<>'') then begin
|
||||||
|
PageHistory.AddAfterCurrent(FPageDocumentName,FPageAnchor,FPageTitle);
|
||||||
|
UpdateHistoryButtons;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TWikiSearchDemoForm.LoadHTML(Target: TIpHtmlPanel; HTML: string);
|
procedure TWikiSearchDemoForm.LoadHTML(Target: TIpHtmlPanel; HTML: string);
|
||||||
var
|
var
|
||||||
ms: TMemoryStream;
|
ms: TMemoryStream;
|
||||||
|
Loading…
Reference in New Issue
Block a user