enabled lazdoc from Darius

git-svn-id: trunk@8049 -
This commit is contained in:
mattias 2005-11-03 19:42:29 +00:00
parent 318c4f1d70
commit e4619df2e1
12 changed files with 727 additions and 563 deletions

2
.gitattributes vendored
View File

@ -984,6 +984,8 @@ ide/transfermacros.pp svneol=native#text/pascal
ide/translations.pas svneol=native#text/pascal
ide/unitdependencies.lrs svneol=native#text/pascal
ide/unitdependencies.pas svneol=native#text/pascal
ide/uniteditor.lfm svneol=native#text/plain
ide/uniteditor.lrs svneol=native#text/plain
ide/uniteditor.pp svneol=native#text/pascal
ide/unitinfodlg.pp svneol=native#text/pascal
ide/viewforms1.lrs svneol=native#text/pascal

View File

@ -220,10 +220,8 @@ type
fCharcaseFileAction : TCharCaseFileAction;
fAmbiguousFileAction: TAmbiguousFileAction;
{$IFDEF EnableLazDoc}
FLazDocPathList: TStrings;
{$ENDIF}
// language ID (see LazarusTranslations in translations.pas)
fLanguageID: string;
@ -392,11 +390,9 @@ type
property CharcaseFileAction: TCharCaseFileAction read fCharcaseFileAction
write fCharcaseFileAction;
{$IFDEF EnableLazDoc}
//lazdoc
property LazDocPathList: TStrings read FLazDocPathList write FLazDocPathList;
{$ENDIF}
// language
property LanguageID: string read fLanguageID write fLanguageID;
@ -887,9 +883,7 @@ begin
fPascalFileExtension:=petPAS;
fCharcaseFileAction:=ccfaAutoRename;
{$IFDEF EnableLazDoc}
FLazDocPathList:=TStringList.Create;
{$ENDIF}
end;
destructor TEnvironmentOptions.Destroy;
@ -911,9 +905,7 @@ begin
fIDEWindowLayoutList.Free;
FConfigStore.Free;
FXMLCfg.Free;
{$IFDEF EnableLazDoc}
FLazDocPathList.Free;
{$ENDIF}
inherited Destroy;
end;
@ -1169,12 +1161,10 @@ begin
// naming
LoadPascalFileExt(Path+'');
{$IFDEF EnableLazDoc}
//lazdoc
if FLazDocPathList<>nil then
FLazDocPathList.Text :=
XMLConfig.GetValue(Path+'LazDoc/Paths', FLazDocPathList.Text);
{$ENDIF}
if FileVersion>=103 then begin
fCharcaseFileAction:=CharCaseFileActionNameToType(XMLConfig.GetValue(
@ -1390,11 +1380,9 @@ begin
AmbiguousFileActionNames[fAmbiguousFileAction],
AmbiguousFileActionNames[afaAsk]);
{$IFDEF EnableLazDoc}
//lazdoc
if FLazDocPathList<>nil then
XMLConfig.SetValue(Path+'LazDoc/Paths', FLazDocPathList.Text);
{$ENDIF}
// object inspector
FObjectInspectorOptions.SaveBounds:=false;
@ -2084,14 +2072,12 @@ end;
procedure TEnvironmentOptionsDialog.LazDocAddPathButtonClick(Sender: TObject);
begin
{$IFNDEF EnableLazDoc}Exit;{$ENDIF}
if LazDocPathEdit.Text <> '' then
LazDocListBox.Items.Add(LazDocPathEdit.Text);
end;
procedure TEnvironmentOptionsDialog.LazDocBrowseButtonClick(Sender: TObject);
begin
{$IFNDEF EnableLazDoc}Exit;{$ENDIF}
if SelectDirectoryDialog.Execute then
LazDocPathEdit.Text := SelectDirectoryDialog.FileName;
end;
@ -2099,7 +2085,6 @@ end;
procedure TEnvironmentOptionsDialog.LazDocDeletePathButtonClick(Sender: TObject
);
begin
{$IFNDEF EnableLazDoc}Exit;{$ENDIF}
LazDocListBox.Items.Delete(LazDocListBox.ItemIndex);
end;
@ -2328,10 +2313,8 @@ begin
CharCaseFileActionRadioGroup.ItemIndex := ord(CharCaseFileAction);
AmbiguousFileActionRadioGroup.ItemIndex := ord(AmbiguousFileAction);
{$IFDEF EnableLazDoc}
//lazdoc
LazDocListBox.Items.AddStrings(LazDocPathList);
{$ENDIF}
end;
end;
@ -2469,10 +2452,8 @@ begin
else
PascalFileExtension:=petPAS;
{$IFDEF EnableLazDoc}
//lazdoc
LazDocPathList.Assign(LazDocListBox.Items);
{$ENDIF}
CharcaseFileAction := TCharCaseFileAction(CharcaseFileActionRadioGroup.ItemIndex);
AmbiguousFileAction := TAmbiguousFileAction(AmbiguousFileActionRadioGroup.ItemIndex);

View File

@ -1,5 +1,5 @@
object LazDocForm: TLazDocForm
ActiveControl = SeeAlsoTabSheet
ActiveControl = ExampleTabSheet
BorderStyle = bsSizeToolWin
Caption = 'LazDoc editor'
ClientHeight = 117
@ -16,6 +16,7 @@ object LazDocForm: TLazDocForm
object PageControl: TPageControl
ActivePage = SeeAlsoTabSheet
Align = alClient
BorderSpacing.OnChange = nil
TabIndex = 3
TabOrder = 0
TabPosition = tpBottom
@ -30,7 +31,6 @@ object LazDocForm: TLazDocForm
Width = 728
object ShortEdit: TEdit
Align = alTop
BorderSpacing.OnChange = nil
BorderSpacing.Right = 2
OnChange = DocumentationTagChange
TabOrder = 0
@ -47,6 +47,7 @@ object LazDocForm: TLazDocForm
Width = 728
object DescrMemo: TMemo
Align = alClient
BorderSpacing.OnChange = nil
BorderSpacing.Right = 2
BorderSpacing.Bottom = 4
Lines.Strings = (
@ -66,7 +67,6 @@ object LazDocForm: TLazDocForm
Width = 728
object ErrorsMemo: TMemo
Align = alClient
BorderSpacing.OnChange = nil
BorderSpacing.Right = 2
BorderSpacing.Bottom = 4
Lines.Strings = (
@ -84,58 +84,89 @@ object LazDocForm: TLazDocForm
ClientWidth = 728
Height = 91
Width = 728
object LinkIdEdit: TEdit
BorderSpacing.OnChange = nil
TabOrder = 0
Text = 'LinkIdEdit'
Height = 23
Width = 227
end
object LinkListBox: TListBox
Align = alBottom
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.OnChange = nil
BorderSpacing.Right = 2
BorderSpacing.Bottom = 4
OnClick = LinkListBoxClick
TabOrder = 1
TabOrder = 0
Height = 60
Top = 27
Width = 726
end
object AddLinkButton: TButton
Anchors = [akTop, akRight]
BorderSpacing.OnChange = nil
AutoSize = True
BorderSpacing.Right = 6
Caption = 'AddLinkButton'
OnClick = AddLinkButtonClick
TabOrder = 2
Left = 569
TabOrder = 1
AnchorSideRight.Control = DeleteLinkButton
Left = 570
Height = 23
Width = 75
end
object DeleteLinkButton: TButton
Anchors = [akTop, akRight]
BorderSpacing.OnChange = nil
AutoSize = True
Caption = 'DeleteLinkButton'
OnClick = DeleteLinkButtonClick
TabOrder = 3
TabOrder = 2
Left = 651
Height = 23
Width = 75
end
object LinkTextEdit: TEdit
BorderSpacing.OnChange = nil
TabOrder = 4
OnChange = LinkChange
TabOrder = 3
Text = 'LinkTextEdit'
Left = 235
Height = 23
Height = 21
Top = 1
Width = 328
end
object LinkIdComboBox: TComboBox
BorderSpacing.OnChange = nil
MaxLength = 0
OnChange = LinkChange
TabOrder = 4
Text = 'LinkIdComboBox'
Height = 21
Top = 1
Width = 227
end
end
object ExampleTabSheet: TTabSheet
Caption = 'ExampleTabSheet'
ClientHeight = 91
ClientWidth = 728
Height = 91
Width = 728
object ExampleEdit: TEdit
Align = alTop
BorderSpacing.Right = 2
OnChange = DocumentationTagChange
TabOrder = 0
Text = 'ExampleEdit'
Height = 23
Width = 726
end
object BrowseExampleButton: TButton
Anchors = [akTop, akRight]
AutoSize = True
Caption = 'BrowseExampleButton'
OnClick = BrowseExampleButtonClick
TabOrder = 1
Left = 651
Height = 25
Top = 28
Width = 75
end
end
end
object Panel1: TPanel
Align = alLeft
BorderSpacing.OnChange = nil
BevelOuter = bvNone
ClientHeight = 117
ClientWidth = 17
@ -147,38 +178,37 @@ object LazDocForm: TLazDocForm
Width = 17
object BoldFormatButton: TSpeedButton
Align = alTop
BorderSpacing.OnChange = nil
Glyph.Data = {
AA030000424D9903000000000000360000002800000011000000110000000100
1800000000002101000064000000640000000000000000000000DEEFEFDEEFEF
DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEF
EFDEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF
EFDEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF
DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEF
EF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF
DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDE
EF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF
DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDE
EFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF
DEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEF00000000000000000000
0000000000000000000000000000DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF65DEEF
DEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEF00000000000000000000
0000000000000000000000000000DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF00DEEF
EFDEEFEFDEEFEFDEEFEFDEEFEF000000000000000000DEEFEFDEEFEF00000000
0000000000DEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEF
0000000000DEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEF
EF000000000000000000DEEFEFDEEFEF000000000000000000DEEFEFDEEFEFDE
EFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF000000000000000000DEEF
EFDEEFEF000000000000000000DEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEF
EFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF000000000000000000DEEF
EFDEEFEF000000000000000000DEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEF
DEEFEFDEEFEFDEEFEF000000000000000000000000000000000000000000DEEF
EFDEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF000000
EFDEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF000000
000000000000DEEFEFDEEFEF000000000000000000DEEFEFDEEFEFDEEFEFDEEF
EF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF000000000000000000DEEFEFDEEFEF
000000000000000000DEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDE
EF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF000000000000000000DEEFEFDEEFEF
000000000000000000DEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDE
EFEFDEEFEF000000000000000000DEEFEFDEEFEF000000000000000000DEEFEF
DEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEF00000000000000000000
0000000000000000000000000000DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF65DEEF
DEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEF00000000000000000000
0000000000000000000000000000DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF00DEEF
EFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDE
EFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEF
EFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEF
EFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDE
EFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEF
EFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEF
EFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEF
EFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEF
DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEF
EFDEEFEFDEEFEFDEEFEFDEEFEF65
EFDEEFEFDEEFEFDEEFEFDEEFEF00
}
NumGlyphs = 0
OnClick = FormatButtonClick
@ -187,38 +217,37 @@ object LazDocForm: TLazDocForm
end
object ItalicFormatButton: TSpeedButton
Align = alTop
BorderSpacing.OnChange = nil
Glyph.Data = {
AA030000424D9903000000000000360000002800000011000000110000000100
1800000000002101000064000000640000000000000000000000DEEFEFDEEFEF
DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEF
EFDEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF
EFDEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF
DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEF
EF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF
DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDE
EF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF
DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDE
EFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF
DEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDE
EFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF65DEEF
DEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDE
EFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF00DEEF
EFDEEFEFDEEFEFDEEFEF000000000000000000000000000000000000DEEFEFDE
EFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEF
EFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEF
EFDEEFEF000000000000AF9696DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDE
EFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFAF96960000000000
00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEF
EFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFAF96960000000000
00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEF
DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF000000000000AF9696DEEFEFDEEFEFDEEF
EFDEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF
EFDEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF
DEEFEFAF9696000000000000DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEF
EF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF000000000000
AF9696DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDE
EF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF000000000000
AF9696DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDE
EFEFDEEFEFDEEFEFDEEFEFDEEFEFAF9696000000000000DEEFEFDEEFEFDEEFEF
DEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDE
EFEFDEEFEF000000000000AF9696DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF65DEEF
DEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDE
EFEFDEEFEF000000000000AF9696DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF00DEEF
EFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF00000000000000000000
0000000000DEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEF
0000000000DEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEF
EFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDE
EFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEF
EFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEF
EFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEF
EFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEF
DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEF
EFDEEFEFDEEFEFDEEFEFDEEFEF65
EFDEEFEFDEEFEFDEEFEFDEEFEF00
}
NumGlyphs = 0
OnClick = FormatButtonClick
@ -229,38 +258,37 @@ object LazDocForm: TLazDocForm
end
object UnderlineFormatButton: TSpeedButton
Align = alTop
BorderSpacing.OnChange = nil
Glyph.Data = {
AA030000424D9903000000000000360000002800000011000000110000000100
1800000000002101000064000000640000000000000000000000DEEFEFDEEFEF
DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEF
EFDEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF
EFDEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF
DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEF
EF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF
DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDE
EF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF
DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDE
EFEF000000000000000000000000000000000000000000000000000000DEEFEF
DEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDE
EFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF65DEEF
DEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDE
EFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF00DEEF
EFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF000000000000000000000000000000DE
EFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEF
EFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEF
EF000000000000848484DEEFEF848484000000000000DEEFEFDEEFEFDEEFEFDE
EFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF000000000000DEEFEFDEEF
EFDEEFEF000000000000DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEF
EFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF000000000000DEEFEFDEEF
EFDEEFEF000000000000DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEF
DEEFEFDEEFEFDEEFEF000000000000DEEFEFDEEFEFDEEFEF000000000000DEEF
EFDEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF000000
EFDEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF000000
000000DEEFEFDEEFEFDEEFEF000000000000DEEFEFDEEFEFDEEFEFDEEFEFDEEF
EF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF000000000000DEEFEFDEEFEFDEEFEF
000000000000DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDE
EF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF000000000000DEEFEFDEEFEFDEEFEF
000000000000DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDE
EFEFDEEFEF000000000000DEEFEFDEEFEFDEEFEF000000000000DEEFEFDEEFEF
DEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF000000000000DE
EFEFDEEFEFDEEFEF000000000000DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF65DEEF
DEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF000000000000DE
EFEFDEEFEFDEEFEF000000000000DEEFEFDEEFEFDEEFEFDEEFEFDEEFEF00DEEF
EFDEEFEFDEEFEFDEEFEF000000000000000000000000DEEFEF00000000000000
0000000000DEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEF
0000000000DEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEF
EFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDE
EFEFDEEFEF65DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEF
EFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF65DEEFEFDEEFEF
EFEFDEEFEF00DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEF
EFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEF00DEEFEFDEEFEF
DEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEFEFDEEF
EFDEEFEFDEEFEFDEEFEFDEEFEF65
EFDEEFEFDEEFEFDEEFEFDEEFEF00
}
NumGlyphs = 0
OnClick = FormatButtonClick
@ -271,6 +299,7 @@ object LazDocForm: TLazDocForm
end
object InsertCodeTagButton: TSpeedButton
Align = alTop
BorderSpacing.OnChange = nil
Glyph.Data = {
F90900002F2A2058504D202A2F0D0A7374617469632063686172202A20496E73
657274436F64655461675F78706D5B5D203D207B0D0A22313720313520313132
@ -362,6 +391,7 @@ object LazDocForm: TLazDocForm
end
object InsertRemarkButton: TSpeedButton
Align = alTop
BorderSpacing.OnChange = nil
Glyph.Data = {
D60100002F2A2058504D202A2F0D0A7374617469632063686172202A20496E73
65727452656D61726B5F78706D5B5D203D207B0D0A2231372031372032203122
@ -388,6 +418,7 @@ object LazDocForm: TLazDocForm
end
object InsertVarTagButton: TSpeedButton
Align = alTop
BorderSpacing.OnChange = nil
Glyph.Data = {
D70200002F2A2058504D202A2F0D0A7374617469632063686172202A20496E73
6572745661725461675F78706D5B5D203D207B0D0A2231372031372031382031
@ -421,4 +452,12 @@ object LazDocForm: TLazDocForm
Tag = 5
end
end
object OpenDialog: TOpenDialog
Title = 'Open example file'
Filter = 'pascal file|*.pas; *.pp; *.p'
FilterIndex = 0
Title = 'Open example file'
left = 64
top = 24
end
end

View File

@ -1,96 +1,151 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TLazDocForm','FORMDATA',[
'TPF0'#11'TLazDocForm'#10'LazDocForm'#13'ActiveControl'#7#15'SeeAlsoTabSheet'
'TPF0'#11'TLazDocForm'#10'LazDocForm'#13'ActiveControl'#7#15'ExampleTabSheet'
+#11'BorderStyle'#7#13'bsSizeToolWin'#7'Caption'#6#13'LazDoc editor'#12'Clien'
+'tHeight'#2'u'#11'ClientWidth'#3#241#2#8'OnCreate'#7#10'FormCreate'#8'OnResi'
+'ze'#7#10'FormResize'#13'PixelsPerInch'#2'`'#18'HorzScrollBar.Page'#3#240#2
+#18'VertScrollBar.Page'#2't'#4'Left'#3#4#1#6'Height'#2'u'#3'Top'#3'H'#2#5'Wi'
+'dth'#3#241#2#0#12'TPageControl'#11'PageControl'#10'ActivePage'#7#15'SeeAlso'
+'TabSheet'#5'Align'#7#8'alClient'#8'TabIndex'#2#3#8'TabOrder'#2#0#11'TabPosi'
+'tion'#7#8'tpBottom'#4'Left'#2#17#6'Height'#2'u'#5'Width'#3#224#2#0#9'TTabSh'
+'eet'#13'ShortTabSheet'#7'Caption'#6#13'ShortTabSheet'#12'ClientHeight'#2'['
+#11'ClientWidth'#3#216#2#6'Height'#2'['#5'Width'#3#216#2#0#5'TEdit'#9'ShortE'
+'dit'#5'Align'#7#5'alTop'#22'BorderSpacing.OnChange'#13#19'BorderSpacing.Rig'
+'ht'#2#2#8'OnChange'#7#22'DocumentationTagChange'#8'TabOrder'#2#0#4'Text'#6#9
+'ShortEdit'#6'Height'#2#23#5'Width'#3#214#2#0#0#0#9'TTabSheet'#13'DescrTabSh'
+'eet'#7'Caption'#6#13'DescrTabSheet'#12'ClientHeight'#2'['#11'ClientWidth'#3
+'dth'#3#241#2#0#12'TPageControl'#11'PageControl'#10'ActivePage'#7#15'Example'
+'TabSheet'#5'Align'#7#8'alClient'#22'BorderSpacing.OnChange'#13#8'TabIndex'#2
+#4#8'TabOrder'#2#0#11'TabPosition'#7#8'tpBottom'#4'Left'#2#17#6'Height'#2'u'
+#5'Width'#3#224#2#0#9'TTabSheet'#13'ShortTabSheet'#7'Caption'#6#13'ShortTabS'
+'heet'#12'ClientHeight'#2'['#11'ClientWidth'#3#216#2#6'Height'#2'['#5'Width'
+#3#216#2#0#5'TEdit'#9'ShortEdit'#5'Align'#7#5'alTop'#19'BorderSpacing.Right'
+#2#2#8'OnChange'#7#22'DocumentationTagChange'#8'TabOrder'#2#0#4'Text'#6#9'Sh'
+'ortEdit'#6'Height'#2#23#5'Width'#3#214#2#0#0#0#9'TTabSheet'#13'DescrTabShee'
+'t'#7'Caption'#6#13'DescrTabSheet'#12'ClientHeight'#2'['#11'ClientWidth'#3
+#216#2#6'Height'#2'['#5'Width'#3#216#2#0#5'TMemo'#9'DescrMemo'#5'Align'#7#8
+'alClient'#19'BorderSpacing.Right'#2#2#20'BorderSpacing.Bottom'#2#4#13'Lines'
+'.Strings'#1#6#9'DescrMemo'#0#8'OnChange'#7#22'DocumentationTagChange'#8'Tab'
+'Order'#2#0#6'Height'#2'W'#5'Width'#3#214#2#0#0#0#9'TTabSheet'#14'ErrorsTabS'
+'heet'#7'Caption'#6#14'ErrorsTabSheet'#12'ClientHeight'#2'['#11'ClientWidth'
+#3#216#2#6'Height'#2'['#5'Width'#3#216#2#0#5'TMemo'#10'ErrorsMemo'#5'Align'#7
+#8'alClient'#22'BorderSpacing.OnChange'#13#19'BorderSpacing.Right'#2#2#20'Bo'
+'rderSpacing.Bottom'#2#4#13'Lines.Strings'#1#6#10'ErrorsMemo'#0#8'OnChange'#7
+#22'DocumentationTagChange'#8'TabOrder'#2#0#6'Height'#2'W'#5'Width'#3#214#2#0
+#0#0#9'TTabSheet'#15'SeeAlsoTabSheet'#7'Caption'#6#15'SeeAlsoTabSheet'#12'Cl'
+'ientHeight'#2'['#11'ClientWidth'#3#216#2#6'Height'#2'['#5'Width'#3#216#2#0#5
+'TEdit'#10'LinkIdEdit'#22'BorderSpacing.OnChange'#13#8'TabOrder'#2#0#4'Text'
+#6#10'LinkIdEdit'#6'Height'#2#23#5'Width'#3#227#0#0#0#8'TListBox'#11'LinkLis'
+'tBox'#5'Align'#7#8'alBottom'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8
+'akBottom'#0#22'BorderSpacing.OnChange'#13#19'BorderSpacing.Right'#2#2#20'Bo'
+'rderSpacing.Bottom'#2#4#7'OnClick'#7#16'LinkListBoxClick'#8'TabOrder'#2#1#6
+'Height'#2'<'#3'Top'#2#27#5'Width'#3#214#2#0#0#7'TButton'#13'AddLinkButton'#7
+'Anchors'#11#5'akTop'#7'akRight'#0#22'BorderSpacing.OnChange'#13#7'Caption'#6
+#13'AddLinkButton'#7'OnClick'#7#18'AddLinkButtonClick'#8'TabOrder'#2#2#4'Lef'
+'t'#3'9'#2#6'Height'#2#23#5'Width'#2'K'#0#0#7'TButton'#16'DeleteLinkButton'#7
+'Anchors'#11#5'akTop'#7'akRight'#0#22'BorderSpacing.OnChange'#13#7'Caption'#6
+#16'DeleteLinkButton'#7'OnClick'#7#21'DeleteLinkButtonClick'#8'TabOrder'#2#3
+#4'Left'#3#139#2#6'Height'#2#23#5'Width'#2'K'#0#0#5'TEdit'#12'LinkTextEdit'
+#22'BorderSpacing.OnChange'#13#8'TabOrder'#2#4#4'Text'#6#12'LinkTextEdit'#4
+'Left'#3#235#0#6'Height'#2#23#5'Width'#3'H'#1#0#0#0#0#6'TPanel'#6'Panel1'#5
+'Align'#7#6'alLeft'#22'BorderSpacing.OnChange'#13#10'BevelOuter'#7#6'bvNone'
+#12'ClientHeight'#2'u'#11'ClientWidth'#2#17#11'FullRepaint'#8#14'ParentShowH'
+'int'#8#8'ShowHint'#9#8'TabOrder'#2#1#6'Height'#2'u'#5'Width'#2#17#0#12'TSpe'
+'edButton'#16'BoldFormatButton'#5'Align'#7#5'alTop'#22'BorderSpacing.OnChang'
+'e'#13#10'Glyph.Data'#10#174#3#0#0#170#3#0#0'BM'#153#3#0#0#0#0#0#0'6'#0#0#0
+'('#0#0#0#17#0#0#0#17#0#0#0#1#0#24#0#0#0#0#0'!'#1#0#0'd'#0#0#0'd'#0#0#0#0#0#0
+#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+'alClient'#22'BorderSpacing.OnChange'#13#19'BorderSpacing.Right'#2#2#20'Bord'
+'erSpacing.Bottom'#2#4#13'Lines.Strings'#1#6#9'DescrMemo'#0#8'OnChange'#7#22
+'DocumentationTagChange'#8'TabOrder'#2#0#6'Height'#2'W'#5'Width'#3#214#2#0#0
+#0#9'TTabSheet'#14'ErrorsTabSheet'#7'Caption'#6#14'ErrorsTabSheet'#12'Client'
+'Height'#2'['#11'ClientWidth'#3#216#2#6'Height'#2'['#5'Width'#3#216#2#0#5'TM'
+'emo'#10'ErrorsMemo'#5'Align'#7#8'alClient'#19'BorderSpacing.Right'#2#2#20'B'
+'orderSpacing.Bottom'#2#4#13'Lines.Strings'#1#6#10'ErrorsMemo'#0#8'OnChange'
+#7#22'DocumentationTagChange'#8'TabOrder'#2#0#6'Height'#2'W'#5'Width'#3#214#2
+#0#0#0#9'TTabSheet'#15'SeeAlsoTabSheet'#7'Caption'#6#15'SeeAlsoTabSheet'#12
+'ClientHeight'#2'['#11'ClientWidth'#3#216#2#6'Height'#2'['#5'Width'#3#216#2#0
+#8'TListBox'#11'LinkListBox'#5'Align'#7#8'alBottom'#7'Anchors'#11#5'akTop'#6
+'akLeft'#7'akRight'#8'akBottom'#0#19'BorderSpacing.Right'#2#2#20'BorderSpaci'
+'ng.Bottom'#2#4#7'OnClick'#7#16'LinkListBoxClick'#8'TabOrder'#2#0#6'Height'#2
+'<'#3'Top'#2#27#5'Width'#3#214#2#0#0#7'TButton'#13'AddLinkButton'#7'Anchors'
+#11#5'akTop'#7'akRight'#0#7'Caption'#6#13'AddLinkButton'#7'OnClick'#7#18'Add'
+'LinkButtonClick'#8'TabOrder'#2#1#4'Left'#3'9'#2#6'Height'#2#23#5'Width'#2'K'
+#0#0#7'TButton'#16'DeleteLinkButton'#7'Anchors'#11#5'akTop'#7'akRight'#0#7'C'
+'aption'#6#16'DeleteLinkButton'#7'OnClick'#7#21'DeleteLinkButtonClick'#8'Tab'
+'Order'#2#2#4'Left'#3#139#2#6'Height'#2#23#5'Width'#2'K'#0#0#5'TEdit'#12'Lin'
+'kTextEdit'#8'OnChange'#7#10'LinkChange'#8'TabOrder'#2#3#4'Text'#6#12'LinkTe'
+'xtEdit'#4'Left'#3#235#0#6'Height'#2#21#3'Top'#2#1#5'Width'#3'H'#1#0#0#9'TCo'
+'mboBox'#14'LinkIdComboBox'#22'BorderSpacing.OnChange'#13#9'MaxLength'#2#0#8
+'OnChange'#7#10'LinkChange'#8'TabOrder'#2#4#4'Text'#6#14'LinkIdComboBox'#6'H'
+'eight'#2#21#3'Top'#2#1#5'Width'#3#227#0#0#0#0#9'TTabSheet'#15'ExampleTabShe'
+'et'#7'Caption'#6#15'ExampleTabSheet'#12'ClientHeight'#2'['#11'ClientWidth'#3
+#216#2#6'Height'#2'['#5'Width'#3#216#2#0#5'TEdit'#11'ExampleEdit'#5'Align'#7
+#5'alTop'#19'BorderSpacing.Right'#2#2#8'OnChange'#7#22'DocumentationTagChang'
+'e'#8'TabOrder'#2#0#4'Text'#6#11'ExampleEdit'#6'Height'#2#23#5'Width'#3#214#2
+#0#0#7'TButton'#19'BrowseExampleButton'#7'Anchors'#11#5'akTop'#7'akRight'#0#7
+'Caption'#6#19'BrowseExampleButton'#7'OnClick'#7#24'BrowseExampleButtonClick'
+#8'TabOrder'#2#1#4'Left'#3#139#2#6'Height'#2#25#3'Top'#2#28#5'Width'#2'K'#0#0
+#0#0#6'TPanel'#6'Panel1'#5'Align'#7#6'alLeft'#10'BevelOuter'#7#6'bvNone'#12
+'ClientHeight'#2'u'#11'ClientWidth'#2#17#11'FullRepaint'#8#14'ParentShowHint'
+#8#8'ShowHint'#9#8'TabOrder'#2#1#6'Height'#2'u'#5'Width'#2#17#0#12'TSpeedBut'
+'ton'#16'BoldFormatButton'#5'Align'#7#5'alTop'#10'Glyph.Data'#10#174#3#0#0
+#170#3#0#0'BM'#153#3#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#17#0#0#0#17#0#0#0#1#0#24#0
+#0#0#0#0'!'#1#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222
+#239#239#222#239#239#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#222#239
,#239#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#0#0#0#222#239#239#222
+#239#239#0#0#0#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222#239#239'e'
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#0#0
+#0#222#239#239#222#239#239#0#0#0#0#0#0#0#0#0#222#239#239#222#239#239#222#239
+#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#0#0#0#0#0#0#0#0#0#222#239#239#222#239#239#0#0#0#0#0#0#0#0#0#222#239#239
+#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#0#0#0#222#239#239#222
+#239#239#0#0#0#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222#239#239'e'
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#0#0
+#0#222#239#239#222#239#239#0#0#0#0#0#0#0#0#0#222#239#239#222#239#239#222#239
+#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#0#0#0#0#0#0#0#0#0#222#239#239#222#239#239#0#0#0#0#0#0#0#0#0#222#239#239
+#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239
+#222#239#239#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239'e'#9'NumGlyphs'#2#0#7'OnClick'#7#17
+'FormatButtonClick'#6'Height'#2#17#5'Width'#2#17#0#0#12'TSpeedButton'#18'Ita'
+'licFormatButton'#5'Align'#7#5'alTop'#10'Glyph.Data'#10#174#3#0#0#170#3#0#0
+'BM'#153#3#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#17#0#0#0#17#0#0#0#1#0#24#0#0#0#0#0
+'!'#1#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+'e'#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#175#150#150#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#175#150#150#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#175
+#150#150#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#175#150#150#0#0#0#0#0#0#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#0#0#0#0#0#0#175#150#150#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#175#150#150#0#0#0#0#0#0
,#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239'e'
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#0#0#0#0#0#0#175#150#150#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#0
+#0#0#0#0#0#0#0#0#222#239#239#222#239#239#0#0#0#0#0#0#0#0#0#222#239#239#222
+#239#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#0#0#0#0#0#0#0#0#0#222#239#239#222#239#239#0#0#0#0#0#0#0
+#0#0#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#0#0#0#222#239#239#222
,#239#239#0#0#0#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222#239#239'e'
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#0
+#0#0#0#0#0#0#0#0#222#239#239#222#239#239#0#0#0#0#0#0#0#0#0#222#239#239#222
+#239#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#0#0#0#0#0#0#0#0#0#222#239#239#222#239#239#0#0#0#0#0#0#0
+#0#0#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#0#0#0#222#239#239#222
+#239#239#0#0#0#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222#239#239'e'
+#222#239#239#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+'e'#9'NumGlyphs'#2#0#7'OnClick'#7#17'FormatButtonClick'#6'Height'#2#17#5'Wid'
+'th'#2#17#0#0#12'TSpeedButton'#18'ItalicFormatButton'#5'Align'#7#5'alTop'#22
+'BorderSpacing.OnChange'#13#10'Glyph.Data'#10#174#3#0#0#170#3#0#0'BM'#153#3#0
+#239'e'#9'NumGlyphs'#2#0#7'OnClick'#7#17'FormatButtonClick'#6'Height'#2#17#3
+'Top'#2#17#5'Width'#2#17#3'Tag'#2#1#0#0#12'TSpeedButton'#21'UnderlineFormatB'
+'utton'#5'Align'#7#5'alTop'#10'Glyph.Data'#10#174#3#0#0#170#3#0#0'BM'#153#3#0
+#0#0#0#0#0'6'#0#0#0'('#0#0#0#17#0#0#0#17#0#0#0#1#0#24#0#0#0#0#0'!'#1#0#0'd'#0
+#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
@ -101,69 +156,15 @@ LazarusResources.Add('TLazDocForm','FORMDATA',[
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+'e'#222#239#239#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#0#0#0#0#0#0#175#150#150#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#175#150#150
+#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#175#150#150#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+'e'#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#175#150#150#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222
+#239#222#239#239#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#222
+#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#0#0#0#0
+#0#0#175#150#150#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#175#150#150#0#0#0#0#0#0#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#0#0#0#0#0#0#175#150#150#222#239#239#222#239#239#222#239#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239#239
,#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239'e'#9'NumGly'
+'phs'#2#0#7'OnClick'#7#17'FormatButtonClick'#6'Height'#2#17#3'Top'#2#17#5'Wi'
+'dth'#2#17#3'Tag'#2#1#0#0#12'TSpeedButton'#21'UnderlineFormatButton'#5'Align'
+#7#5'alTop'#22'BorderSpacing.OnChange'#13#10'Glyph.Data'#10#174#3#0#0#170#3#0
+#0'BM'#153#3#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#17#0#0#0#17#0#0#0#1#0#24#0#0#0#0#0
+'!'#1#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+'e'#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222
+#239#239#222#239#239#222#239#239#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#132#132#132
+#222#239#239#132#132#132#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#222#239
+#222#239#239#222#239#239#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#222#239#239#222#239#239
+#222#239#239#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#132#132#132#222#239#239
+#132#132#132#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#0#0#0
+#0#0#0#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239
@ -174,95 +175,103 @@ LazarusResources.Add('TLazDocForm','FORMDATA',[
+#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239
+#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#0#0#0#0#0#0#222#239#239#0#0
+#0#0#0#0#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222#239#239'e'#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#222#239#239#222
+#239#239#222#239#239#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#0#0#0#0#0#0#222#239#239#222#239#239#222#239#239#0#0#0#0#0#0#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239#239
+#222#239#239#222#239#239#0#0#0#0#0#0#0#0#0#0#0#0#222#239#239#0#0#0#0#0#0#0#0
+#0#0#0#0#222#239#239#222#239#239#222#239#239#222#239#239'e'#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239'e'#222#239#239#222#239#239#222#239#239#222#239#239#222#239
+#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222
+#239#239'e'#9'NumGlyphs'#2#0#7'OnClick'#7#17'FormatButtonClick'#6'Height'#2
+#17#3'Top'#2'"'#5'Width'#2#17#3'Tag'#2#2#0#0#12'TSpeedButton'#19'InsertCodeT'
+'agButton'#5'Align'#7#5'alTop'#10'Glyph.Data'#10#253#9#0#0#249#9#0#0'/* XPM '
+'*/'#13#10'static char * InsertCodeTag_xpm[] = {'#13#10'"17 15 112 2",'#13#10
+'" '#9'c None",'#13#10'". '#9'c #ECE9D8",'#13#10'"+ '#9'c #FFF0CF",'#13#10
+'"@ '#9'c #FFEDC5",'#13#10'"# '#9'c #FBE8C5",'#13#10'"$ '#9'c #EDDAC5",'#13
+#10'"% '#9'c #F4E8DB",'#13#10'"& '#9'c #FAEDD5",'#13#10'"* '#9'c #F3D49E",'
+#13#10'"= '#9'c #BF9855",'#13#10'"- '#9'c #C89D55",'#13#10'"; '#9'c #BC8E5A"'
+','#13#10'"> '#9'c #7C6135",'#13#10'", '#9'c #B18655",'#13#10'"'' '#9'c #916'
,'940",'#13#10'") '#9'c #C3AC93",'#13#10'"! '#9'c #CCA76A",'#13#10'"~ '#9'c #'
+'80684A",'#13#10'"{ '#9'c #DCAA63",'#13#10'"] '#9'c #A8834A",'#13#10'"^ '#9
+'c #977443",'#13#10'"/ '#9'c #B99052",'#13#10'"( '#9'c #947047",'#13#10'"_ '
+#9'c #896842",'#13#10'": '#9'c #C4955E",'#13#10'"< '#9'c #87653F",'#13#10'"['
+' '#9'c #A37A4E",'#13#10'"} '#9'c #F0E1CF",'#13#10'"| '#9'c #BD964F",'#13#10
+'"1 '#9'c #977740",'#13#10'"2 '#9'c #7C6038",'#13#10'"3 '#9'c #9C7749",'#13
+#10'"4 '#9'c #866340",'#13#10'"5 '#9'c #BA8D59",'#13#10'"6 '#9'c #634430",'
+#13#10'"7 '#9'c #8A6542",'#13#10'"8 '#9'c #C99761",'#13#10'"9 '#9'c #CC9B62"'
+','#13#10'"0 '#9'c #6C5842",'#13#10'"a '#9'c #82705A",'#13#10'"b '#9'c #A47C'
+'4F",'#13#10'"c '#9'c #614A2F",'#13#10'"d '#9'c #906C45",'#13#10'"e '#9'c #7'
+'C513C",'#13#10'"f '#9'c #AD7F54",'#13#10'"g '#9'c #B78858",'#13#10'"h '#9'c'
+' #A4825B",'#13#10'"i '#9'c #8D7A65",'#13#10'"j '#9'c #927D67",'#13#10'"k '#9
+'c #93705B",'#13#10'"l '#9'c #3F3636",'#13#10'"m '#9'c #D3D3D3",'#13#10'"n '
+#9'c #CE9E60",'#13#10'"o '#9'c #755738",'#13#10'"p '#9'c #A77951",'#13#10'"q'
+' '#9'c #CE9C63",'#13#10'"r '#9'c #3B271D",'#13#10'"s '#9'c #825F4B",'#13#10
+'"t '#9'c #D6D5D3",'#13#10'"u '#9'c #EEEAE0",'#13#10'"v '#9'c #AB7A53",'#13
+#10'"w '#9'c #745438",'#13#10'"x '#9'c #A77B50",'#13#10'"y '#9'c #948B83",'
+#13#10'"z '#9'c #261313",'#13#10'"A '#9'c #8B6843",'#13#10'"B '#9'c #634730"'
+','#13#10'"C '#9'c #4B3924",'#13#10'"D '#9'c #B58757",'#13#10'"E '#9'c #8163'
+'47",'#13#10'"F '#9'c #ECEAE0",'#13#10'"G '#9'c #735438",'#13#10'"H '#9'c #A'
+'2774E",'#13#10'"I '#9'c #C0915C",'#13#10'"J '#9'c #A37B4E",'#13#10'"K '#9'c'
+' #6D5134",'#13#10'"L '#9'c #7C593C",'#13#10'"M '#9'c #917C63",'#13#10'"N '#9
+'c #99938C",'#13#10'"O '#9'c #B5B1AC",'#13#10'"P '#9'c #E8E8E8",'#13#10'"Q '
+#9'c #866B4D",'#13#10'"R '#9'c #8C6D49",'#13#10'"S '#9'c #684F32",'#13#10'"T'
+' '#9'c #1D130E",'#13#10'"U '#9'c #B58657",'#13#10'"V '#9'c #8E6C44",'#13#10
+'"W '#9'c #A67E50",'#13#10'"X '#9'c #81623E",'#13#10'"Y '#9'c #6D5234",'#13
+#10'"Z '#9'c #5F4D37",'#13#10'"` '#9'c #978E85",'#13#10'" .'#9'c #ECEAE2",'
+#13#10'"..'#9'c #CAC7C4",'#13#10'"+.'#9'c #8F7658",'#13#10'"@.'#9'c #4A3124"'
+','#13#10'"#.'#9'c #B98859",'#13#10'"$.'#9'c #885842",'#13#10'"%.'#9'c #4632'
+'22",'#13#10'"&.'#9'c #CB9A62",'#13#10'"*.'#9'c #3D231E",'#13#10'"=.'#9'c #3'
+'9271C",'#13#10'"-.'#9'c #876E51",'#13#10'";.'#9'c #938778",'#13#10'">.'#9'c'
+' #D7D5D3",'#13#10'",.'#9'c #DFDFDF",'#13#10'"''.'#9'c #9E9891",'#13#10'").'
+#9'c #908C87",'#13#10'"!.'#9'c #918A88",'#13#10'"~.'#9'c #8F8B87",'#13#10'"{'
+'.'#9'c #989188",'#13#10'"].'#9'c #BEBAB5",'#13#10'". . . . . . . . . . . . '
+'. . . . . ",'#13#10'". . . . . . . . . . . . . . . . . ",'#13#10'". . . . .'
+' + @ # $ % . . . . . . . ",'#13#10'". . & * = - ; > , '' ) . . . . . . ",'
+#13#10'"! ~ { ] ^ / ( _ : < [ } . . . . . ",'#13#10'"| 1 2 3 4 5 6 7 8 9 0 a'
+' . . . . . ",'#13#10'"b c d e f g h i j k l m . . . . . ",'#13#10'"n o p q '
+'r s t . . . u . . . . . . ",'#13#10'", q v w x y . . . . . . . . . . . ",'
+#13#10'"z A B C D E F . . . . . . . . . . ",'#13#10'"G H I J K L M N N O P .'
+' . . . . . ",'#13#10'"Q R S T U V W X X Y Z ` .. . . . ",'#13#10'". ..+.@.'
+'#.$.%.9 q &.*.=.X -.;.>.. ",'#13#10'". . . ,.''.N ).N N N !.~.{.-.-.].. ",'
+#13#10'". . . . . . . . . . . . . . . . . "};'#13#10#9'NumGlyphs'#2#0#7'OnCl'
+'ick'#7#17'FormatButtonClick'#6'Height'#2#17#3'Top'#2'3'#5'Width'#2#17#3'Tag'
+#2#3#0#0#12'TSpeedButton'#18'InsertRemarkButton'#5'Align'#7#5'alTop'#10'Glyp'
+'h.Data'#10#218#1#0#0#214#1#0#0'/* XPM */'#13#10'static char * InsertRemark_'
+'xpm[] = {'#13#10'"17 17 2 1",'#13#10'" '#9'c #ECE9D8",'#13#10'".'#9'c #0000'
+'FF",'#13#10'" ",'#13#10'" ",'#13#10'" '
+' ",'#13#10'" ... ... ",'#13#10'" .. .. ",'#13#10
+#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239#222#239#239'e'#9
+'NumGlyphs'#2#0#7'OnClick'#7#17'FormatButtonClick'#6'Height'#2#17#3'Top'#2'"'
+#5'Width'#2#17#3'Tag'#2#2#0#0#12'TSpeedButton'#19'InsertCodeTagButton'#5'Ali'
+'gn'#7#5'alTop'#22'BorderSpacing.OnChange'#13#10'Glyph.Data'#10#253#9#0#0#249
,#9#0#0'/* XPM */'#13#10'static char * InsertCodeTag_xpm[] = {'#13#10'"17 15 '
+'112 2",'#13#10'" '#9'c None",'#13#10'". '#9'c #ECE9D8",'#13#10'"+ '#9'c #F'
+'FF0CF",'#13#10'"@ '#9'c #FFEDC5",'#13#10'"# '#9'c #FBE8C5",'#13#10'"$ '#9'c'
+' #EDDAC5",'#13#10'"% '#9'c #F4E8DB",'#13#10'"& '#9'c #FAEDD5",'#13#10'"* '#9
+'c #F3D49E",'#13#10'"= '#9'c #BF9855",'#13#10'"- '#9'c #C89D55",'#13#10'"; '
+#9'c #BC8E5A",'#13#10'"> '#9'c #7C6135",'#13#10'", '#9'c #B18655",'#13#10'"'
+''' '#9'c #916940",'#13#10'") '#9'c #C3AC93",'#13#10'"! '#9'c #CCA76A",'#13
+#10'"~ '#9'c #80684A",'#13#10'"{ '#9'c #DCAA63",'#13#10'"] '#9'c #A8834A",'
+#13#10'"^ '#9'c #977443",'#13#10'"/ '#9'c #B99052",'#13#10'"( '#9'c #947047"'
+','#13#10'"_ '#9'c #896842",'#13#10'": '#9'c #C4955E",'#13#10'"< '#9'c #8765'
+'3F",'#13#10'"[ '#9'c #A37A4E",'#13#10'"} '#9'c #F0E1CF",'#13#10'"| '#9'c #B'
+'D964F",'#13#10'"1 '#9'c #977740",'#13#10'"2 '#9'c #7C6038",'#13#10'"3 '#9'c'
+' #9C7749",'#13#10'"4 '#9'c #866340",'#13#10'"5 '#9'c #BA8D59",'#13#10'"6 '#9
+'c #634430",'#13#10'"7 '#9'c #8A6542",'#13#10'"8 '#9'c #C99761",'#13#10'"9 '
+#9'c #CC9B62",'#13#10'"0 '#9'c #6C5842",'#13#10'"a '#9'c #82705A",'#13#10'"b'
+' '#9'c #A47C4F",'#13#10'"c '#9'c #614A2F",'#13#10'"d '#9'c #906C45",'#13#10
+'"e '#9'c #7C513C",'#13#10'"f '#9'c #AD7F54",'#13#10'"g '#9'c #B78858",'#13
+#10'"h '#9'c #A4825B",'#13#10'"i '#9'c #8D7A65",'#13#10'"j '#9'c #927D67",'
+#13#10'"k '#9'c #93705B",'#13#10'"l '#9'c #3F3636",'#13#10'"m '#9'c #D3D3D3"'
+','#13#10'"n '#9'c #CE9E60",'#13#10'"o '#9'c #755738",'#13#10'"p '#9'c #A779'
+'51",'#13#10'"q '#9'c #CE9C63",'#13#10'"r '#9'c #3B271D",'#13#10'"s '#9'c #8'
+'25F4B",'#13#10'"t '#9'c #D6D5D3",'#13#10'"u '#9'c #EEEAE0",'#13#10'"v '#9'c'
+' #AB7A53",'#13#10'"w '#9'c #745438",'#13#10'"x '#9'c #A77B50",'#13#10'"y '#9
+'c #948B83",'#13#10'"z '#9'c #261313",'#13#10'"A '#9'c #8B6843",'#13#10'"B '
+#9'c #634730",'#13#10'"C '#9'c #4B3924",'#13#10'"D '#9'c #B58757",'#13#10'"E'
+' '#9'c #816347",'#13#10'"F '#9'c #ECEAE0",'#13#10'"G '#9'c #735438",'#13#10
+'"H '#9'c #A2774E",'#13#10'"I '#9'c #C0915C",'#13#10'"J '#9'c #A37B4E",'#13
+#10'"K '#9'c #6D5134",'#13#10'"L '#9'c #7C593C",'#13#10'"M '#9'c #917C63",'
+#13#10'"N '#9'c #99938C",'#13#10'"O '#9'c #B5B1AC",'#13#10'"P '#9'c #E8E8E8"'
+','#13#10'"Q '#9'c #866B4D",'#13#10'"R '#9'c #8C6D49",'#13#10'"S '#9'c #684F'
+'32",'#13#10'"T '#9'c #1D130E",'#13#10'"U '#9'c #B58657",'#13#10'"V '#9'c #8'
+'E6C44",'#13#10'"W '#9'c #A67E50",'#13#10'"X '#9'c #81623E",'#13#10'"Y '#9'c'
+' #6D5234",'#13#10'"Z '#9'c #5F4D37",'#13#10'"` '#9'c #978E85",'#13#10'" .'#9
+'c #ECEAE2",'#13#10'"..'#9'c #CAC7C4",'#13#10'"+.'#9'c #8F7658",'#13#10'"@.'
+#9'c #4A3124",'#13#10'"#.'#9'c #B98859",'#13#10'"$.'#9'c #885842",'#13#10'"%'
+'.'#9'c #463222",'#13#10'"&.'#9'c #CB9A62",'#13#10'"*.'#9'c #3D231E",'#13#10
+'"=.'#9'c #39271C",'#13#10'"-.'#9'c #876E51",'#13#10'";.'#9'c #938778",'#13
+#10'">.'#9'c #D7D5D3",'#13#10'",.'#9'c #DFDFDF",'#13#10'"''.'#9'c #9E9891",'
+#13#10'").'#9'c #908C87",'#13#10'"!.'#9'c #918A88",'#13#10'"~.'#9'c #8F8B87"'
+','#13#10'"{.'#9'c #989188",'#13#10'"].'#9'c #BEBAB5",'#13#10'". . . . . . .'
+' . . . . . . . . . . ",'#13#10'". . . . . . . . . . . . . . . . . ",'#13#10
+'". . . . . + @ # $ % . . . . . . . ",'#13#10'". . & * = - ; > , '' ) . . . '
+'. . . ",'#13#10'"! ~ { ] ^ / ( _ : < [ } . . . . . ",'#13#10'"| 1 2 3 4 5 6'
+' 7 8 9 0 a . . . . . ",'#13#10'"b c d e f g h i j k l m . . . . . ",'#13#10
+'"n o p q r s t . . . u . . . . . . ",'#13#10'", q v w x y . . . . . . . . .'
+' . . ",'#13#10'"z A B C D E F . . . . . . . . . . ",'#13#10'"G H I J K L M '
+'N N O P . . . . . . ",'#13#10'"Q R S T U V W X X Y Z ` .. . . . ",'#13#10
+'". ..+.@.#.$.%.9 q &.*.=.X -.;.>.. ",'#13#10'". . . ,.''.N ).N N N !.~.{.-.'
+'-.].. ",'#13#10'". . . . . . . . . . . . . . . . . "};'#13#10#9'NumGlyphs'#2
+#0#7'OnClick'#7#17'FormatButtonClick'#6'Height'#2#17#3'Top'#2'3'#5'Width'#2
+#17#3'Tag'#2#3#0#0#12'TSpeedButton'#18'InsertRemarkButton'#5'Align'#7#5'alTo'
+'p'#22'BorderSpacing.OnChange'#13#10'Glyph.Data'#10#218#1#0#0#214#1#0#0'/* X'
+'PM */'#13#10'static char * InsertRemark_xpm[] = {'#13#10'"17 17 2 1",'#13#10
+'" '#9'c #ECE9D8",'#13#10'".'#9'c #0000FF",'#13#10'" ",'#13
+#10'" ",'#13#10'" ",'#13#10'" ... ... '
+' ",'#13#10'" .. .. ",'#13#10'" .. .. ",'#13#10'" .. '
+' .. ",'#13#10'" .. .. ",'#13#10'" ... ... ",'#13#10
+'" .. .. ",'#13#10'" .. .. ",'#13#10'" .. .. "'
+','#13#10'" ... ... ",'#13#10'" .. .. ",'#13#10'" .. '
+' .. ",'#13#10'" .. .. ",'#13#10'" .. .. ",'#13#10'"'
+' ... ... ",'#13#10'" ",'#13#10'" ",'
+#13#10'" "};'#13#10#9'NumGlyphs'#2#0#7'OnClick'#7#17'FormatB'
+'uttonClick'#6'Height'#2#17#3'Top'#2'D'#5'Width'#2#17#3'Tag'#2#4#0#0#12'TSpe'
+'edButton'#18'InsertVarTagButton'#5'Align'#7#5'alTop'#10'Glyph.Data'#10#219#2
+#0#0#215#2#0#0'/* XPM */'#13#10'static char * InsertVarTag_xpm[] = {'#13#10
+'"17 17 18 1",'#13#10'" '#9'c #ECE9D8",'#13#10'".'#9'c #D4D4D4",'#13#10'"+'#9
+'c #AAAAAA",'#13#10'"@'#9'c #E6E6E6",'#13#10'"#'#9'c #000000",'#13#10'"$'#9
+'c #CCCCCC",'#13#10'"%'#9'c #C4C4C4",'#13#10'"&'#9'c #888888",'#13#10'"*'#9
+'c #444444",'#13#10'"='#9'c #999999",'#13#10'"-'#9'c #666666",'#13#10'";'#9
+'c #222222",'#13#10'">'#9'c #BBBBBB",'#13#10'",'#9'c #5E5E5E",'#13#10'"'''#9
+'c #808080",'#13#10'")'#9'c #FFFFFF",'#13#10'"!'#9'c #777777",'#13#10'"~'#9
+'c #4C4C4C",'#13#10'" ",'#13#10'" ",'#13#10
,'" ",'#13#10'" ",'#13#10'" "'
+','#13#10'" ",'#13#10'" .+++..++ .+++ ",'#13#10'" @#$#@%&*'
+'=@-;&> ",'#13#10'" ,*, ;>,'')'''' ",'#13#10'" .;. -!~~>~~> ",'#13#10
+'" ",'#13#10'" ",'#13#10'" "'
+','#13#10'" ",'#13#10'" ",'#13#10'" '
+' ",'#13#10'" "};'#13#10#9'NumGlyphs'#2#0#7'OnClick'#7
+#17'FormatButtonClick'#6'Height'#2#17#3'Top'#2'U'#5'Width'#2#17#3'Tag'#2#5#0
+#0#0#0
+','#13#10'" .. .. ",'#13#10'" ... ... ",'#13#10'" '
+' ",'#13#10'" ",'#13#10'" "};'#13#10#9
+'NumGlyphs'#2#0#7'OnClick'#7#17'FormatButtonClick'#6'Height'#2#17#3'Top'#2'D'
+#5'Width'#2#17#3'Tag'#2#4#0#0#12'TSpeedButton'#18'InsertVarTagButton'#5'Alig'
+'n'#7#5'alTop'#22'BorderSpacing.OnChange'#13#10'Glyph.Data'#10#219#2#0#0#215
+#2#0#0'/* XPM */'#13#10'static char * InsertVarTag_xpm[] = {'#13#10'"17 17 1'
,'8 1",'#13#10'" '#9'c #ECE9D8",'#13#10'".'#9'c #D4D4D4",'#13#10'"+'#9'c #AAA'
+'AAA",'#13#10'"@'#9'c #E6E6E6",'#13#10'"#'#9'c #000000",'#13#10'"$'#9'c #CCC'
+'CCC",'#13#10'"%'#9'c #C4C4C4",'#13#10'"&'#9'c #888888",'#13#10'"*'#9'c #444'
+'444",'#13#10'"='#9'c #999999",'#13#10'"-'#9'c #666666",'#13#10'";'#9'c #222'
+'222",'#13#10'">'#9'c #BBBBBB",'#13#10'",'#9'c #5E5E5E",'#13#10'"'''#9'c #80'
+'8080",'#13#10'")'#9'c #FFFFFF",'#13#10'"!'#9'c #777777",'#13#10'"~'#9'c #4C'
+'4C4C",'#13#10'" ",'#13#10'" ",'#13#10'" '
+' ",'#13#10'" ",'#13#10'" ",'#13
+#10'" ",'#13#10'" .+++..++ .+++ ",'#13#10'" @#$#@%&*=@-;&>'
+' ",'#13#10'" ,*, ;>,'')'''' ",'#13#10'" .;. -!~~>~~> ",'#13#10'" '
+' ",'#13#10'" ",'#13#10'" ",'#13
+#10'" ",'#13#10'" ",'#13#10'" '
+' ",'#13#10'" "};'#13#10#9'NumGlyphs'#2#0#7'OnClick'#7#17'F'
+'ormatButtonClick'#6'Height'#2#17#3'Top'#2'U'#5'Width'#2#17#3'Tag'#2#5#0#0#0
+#11'TOpenDialog'#10'OpenDialog'#5'Title'#6#17'Open example file'#6'Filter'#6
+#28'pascal file|*.pas; *.pp; *.p'#11'FilterIndex'#2#0#5'Title'#6#17'Open exa'
+'mple file'#4'left'#2'@'#3'top'#2#24#0#0#0
]);

View File

@ -58,23 +58,29 @@ uses
XMLread,
XMLwrite;
const
SHORT = 1;
DESCR = 2;
ERRORS = 4;
SEEALSO = 5;
EXAMPLE = 6;
NODEITEMS = EXAMPLE; //always make nodeitems equal to higest element
type
TFPDocNode = record
Short: String;
Descr: String;
Errors: String;
SeeAlso: String;
end;
TFPDocNode = array [1..NODEITEMS] of String;
{ TLazDocForm }
TLazDocForm = class(TForm)
AddLinkButton: TButton;
BrowseExampleButton: TButton;
ExampleEdit: TEdit;
LinkIdComboBox: TComboBox;
DeleteLinkButton: TButton;
DescrMemo: TMemo;
LinkTextEdit: TEdit;
LinkIdEdit: TEdit;
LinkListBox: TListBox;
OpenDialog: TOpenDialog;
Panel1: TPanel;
ShortEdit: TEdit;
ErrorsMemo: TMemo;
@ -87,22 +93,31 @@ type
InsertCodeTagButton: TSpeedButton;
InsertRemarkButton: TSpeedButton;
InsertVarTagButton: TSpeedButton;
ExampleTabSheet: TTabSheet;
UnderlineFormatButton: TSpeedButton;
SeeAlsoTabSheet: TTabSheet;
procedure AddLinkButtonClick(Sender: TObject);
procedure BrowseExampleButtonClick(Sender: TObject);
procedure DeleteLinkButtonClick(Sender: TObject);
procedure DocumentationTagChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure FormatButtonClick(Sender: TObject);
procedure LinkChange(Sender: TObject);
procedure LinkListBoxClick(Sender: TObject);
private
{ private declarations }
FChanged: Boolean;
FLinkIndex: Integer;
FChanged: Boolean;
FDocFileName: String;
FCurrentElement: String;
FLastElement: String;
function GetModuleNode: TDOMNode;
function GetFirstElement: TDOMNode;
procedure GetElementList;
function MakeLink: String;
procedure SetDocFileName(Value: String);
procedure InsertElement(ElementName: String);
function NodeByName(ElementName: String): TDOMNode;
function GetFirstChildValue(n: TDOMNode): String;
function ElementFromNode(Node: TDOMNode): TFPDocNode;
@ -121,7 +136,8 @@ type
var
LazDocForm: TLazDocForm;
doc: TXMLdocument = Nil; //maybe better to make it a member field of TLazFormDoc
doc: TXMLdocument = Nil;
//maybe better to make it a member field of TLazFormDoc
procedure DoShowLazDoc;
@ -137,8 +153,77 @@ begin
LazDocForm.Show;
end;
function TLazDocForm.GetModuleNode: TDOMNode;
var
n: TDOMNode;
begin
//get first node
n := doc.FindNode('fpdoc-descriptions');
//proceed to package (could there be more packages in one file??)
n := n.FirstChild;
//proceed to module (could there be more modules in one file??)
n := n.FirstChild;
while n.NodeName <> 'module' do
n := n.NextSibling;
Result := n;
end;
function TLazDocForm.GetFirstElement: TDOMNode;
var
n: TDOMNode;
begin
//get first module node
n := GetModuleNode;
//proceed to element
n := n.FirstChild;
while n.NodeName <> 'element' do
n := n.NextSibling;
Result := n;
end;
procedure TLazDocForm.GetElementList;
var
n: TDOMNode;
begin
LinkIdComboBox.Clear;
if not Assigned(doc) then
begin
{$ifdef dbgLazDoc}
DebugLn('TLazDocForm.GetElementList: document is not set');
{$endif}
Exit;
end;
//get first element node
n := GetFirstElement;
//search all elements
while Assigned(n) do
begin
//showmessage(TDomElement(n)['name']);
LinkIdComboBox.Items.Add(TDomElement(n)['name']);
n := n.NextSibling;
if not Assigned(n) then
Exit;
while n.NodeName = '#comment' do
n := n.NextSibling;
end;
end;
procedure TLazDocForm.SetDocFileName(Value: String);
begin
LinkIdComboBox.Clear;
if FileExists(Value) and (Value <> FDocFileName) then
begin
//reset Self
@ -153,10 +238,11 @@ begin
SetCaption;
GetElementList;
{$ifdef dbgLazDoc}
DebugLn('TLazDocForm.SetDocFileName: document is set: ' + Value);
{$endif}
end;
end;
@ -164,12 +250,15 @@ procedure TLazDocForm.FormCreate(Sender: TObject);
begin
Caption := lisLazDocMainFormCaption;
FLinkIndex := -1;
with PageControl do
begin
Page[0].Caption := lisLazDocShortTag;
Page[1].Caption := lisLazDocDescrTag;
Page[2].Caption := lisLazDocErrorsTag;
Page[3].Caption := lisLazDocSeeAlsoTag;
Page[4].Caption := lisLazDocExampleTag;
PageIndex := 0;
end;
@ -183,85 +272,82 @@ begin
AddLinkButton.Caption := lisLazDocAddLinkButton;
DeleteLinkButton.Caption := lisLazDocDeleteLinkButton;
BrowseExampleButton.Caption := lisLazDocBrowseExampleButton;
Reset;
Resize;
end;
procedure TLazDocForm.FormResize(Sender: TObject);
begin
LinkIdEdit.Width := (AddLinkButton.Left - LinkIdEdit.Left - 12) div 2;
LinkTextEdit.Left := LinkIdEdit.Left + LinkIdEdit.Width + 6;
LinkTextEdit.Width := LinkIdEdit.Width;
LinkIdComboBox.Width := (AddLinkButton.Left - LinkIdComboBox.Left - 8) div 2;
LinkTextEdit.Left := LinkIdComboBox.Left + LinkIdComboBox.Width + 4;
LinkTextEdit.Width := LinkIdComboBox.Width;
end;
procedure TLazDocForm.FormatButtonClick(Sender: TObject);
procedure InsertTag(starttag, endtag: String);
begin
if PageControl.ActivePage.Caption = lisLazDocDescrTag then
DescrMemo.SelText := starttag + DescrMemo.SelText + endtag;
if PageControl.ActivePage.Caption = lisLazDocErrorsTag then
ErrorsMemo.SelText := starttag + ErrorsMemo.SelText + endtag;
end;
begin
case TSpeedButton(Sender).Tag of
//bold
0: begin
if PageControl.ActivePage.Caption = lisLazDocDescrTag then
DescrMemo.SelText := '<b>' + DescrMemo.SelText + '</b>';
if PageControl.ActivePage.Caption = lisLazDocErrorsTag then
ErrorsMemo.SelText := '<b>' + ErrorsMemo.SelText + '</b>';
end;
0:
InsertTag('<b>', '</b>');
//italic
1: begin
if PageControl.ActivePage.Caption = lisLazDocDescrTag then
DescrMemo.SelText := '<i>' + DescrMemo.SelText + '</i>';
if PageControl.ActivePage.Caption = lisLazDocErrorsTag then
ErrorsMemo.SelText := '<i>' + ErrorsMemo.SelText + '</i>';
end;
1:
InsertTag('<i>', '</i>');
//underline
2: begin
if PageControl.ActivePage.Caption = lisLazDocDescrTag then
DescrMemo.SelText := '<u>' + DescrMemo.SelText + '</u>';
if PageControl.ActivePage.Caption = lisLazDocErrorsTag then
ErrorsMemo.SelText := '<u>' + ErrorsMemo.SelText + '</u>';
end;
2:
InsertTag('<u>', '</u>');
//codetag
3: begin
if PageControl.ActivePage.Caption = lisLazDocDescrTag then
DescrMemo.SelText := '<p><code>' + DescrMemo.SelText + '</code></p>';
if PageControl.ActivePage.Caption = lisLazDocErrorsTag then
ErrorsMemo.SelText := '<p><code>' + ErrorsMemo.SelText + '</code></p>';
end;
3:
InsertTag('<p><code>', '</code></p>');
//remarktag
4: begin
if PageControl.ActivePage.Caption = lisLazDocDescrTag then
DescrMemo.SelText := '<p><remark>' + DescrMemo.SelText + '</remark></p>';
if PageControl.ActivePage.Caption = lisLazDocErrorsTag then
ErrorsMemo.SelText := '<p><remark>' + ErrorsMemo.SelText + '</remark></p>';
end;
4:
InsertTag('<p><remark>', '</remark></p>');
//vartag
5: begin
if PageControl.ActivePage.Caption = lisLazDocDescrTag then
DescrMemo.SelText := '<var>' + DescrMemo.SelText + '</var>';
if PageControl.ActivePage.Caption = lisLazDocErrorsTag then
ErrorsMemo.SelText := '<var>' + ErrorsMemo.SelText + '</var>';
end;
5:
InsertTag('<var>', '</var>');
end;
end;
procedure TLazDocForm.LinkChange(Sender: TObject);
begin
if FLinkIndex = -1 then
Exit;
LinkListBox.Items.Strings[FLinkIndex] := MakeLink;
end;
procedure TLazDocForm.LinkListBoxClick(Sender: TObject);
var
strTmp: string;
intTmp: integer;
index: integer;
intStart: integer;
strTmp: String;
intTmp: Integer;
intStart: Integer;
begin
//split the link into Id and Text
index := LinkListBox.ItemIndex;
if index = -1 then Exit;
intStart := PosEx('"', LinkListBox.Items[index], 1);
intTmp := PosEx('"', LinkListBox.Items[index], intStart + 1);
LinkIdEdit.Text := Copy(LinkListBox.Items[index], intStart + 1, intTmp - intStart - 1);
strTmp := Copy(LinkListBox.Items[index], intTmp + 2, Length(LinkListBox.Items[index]));
FLinkIndex := LinkListBox.ItemIndex;
if FLinkIndex = -1 then
Exit;
intStart := PosEx('"', LinkListBox.Items[FLinkIndex], 1);
intTmp := PosEx('"', LinkListBox.Items[FLinkIndex], intStart + 1);
LinkIdComboBox.Text := Copy(LinkListBox.Items[FLinkIndex],
intStart + 1, intTmp - intStart - 1);
strTmp := Copy(LinkListBox.Items[FLinkIndex], intTmp + 2,
Length(LinkListBox.Items[FLinkIndex]));
if strTmp = '>' then
LinkTextEdit.Text := ''
@ -269,6 +355,35 @@ begin
LinkTextEdit.Text := Copy(strTmp, 1, Length(strTmp) - Length('</link>'));
end;
procedure TLazDocForm.InsertElement(ElementName: String);
var
n: TDOMNode;
child: TDOMNode;
begin
Exit;
//preparations being made for adding nodes
//having to finalize adding comment
//get first module node
n := GetModuleNode;
//TODO: insert element comment (important or not!!)
child := doc.CreateComment('test');
n.AppendChild(child);
child := doc.CreateElement('element');
TDOMElement(child).SetAttribute('name', ElementName);
child.AppendChild(doc.CreateElement('short'));
child.AppendChild(doc.CreateElement('descr'));
child.AppendChild(doc.CreateElement('errors'));
child.AppendChild(doc.CreateElement('seealso'));
child.AppendChild(doc.CreateElement('example'));
n.AppendChild(child);
WriteXMLFile(doc, FDocFileName);
end;
function TLazDocForm.NodeByName(ElementName: String): TDOMNode;
var
n: TDOMNode;
@ -284,29 +399,20 @@ begin
Exit;
end;
//get first node
n := doc.FindNode('fpdoc-descriptions');
//proceed to package (could there be more packages in one file??)
n := n.FirstChild;
//proceed to module (could there be more modules in one file??)
n := n.FirstChild;
while n.NodeName <> 'module' do
n := n.NextSibling;
//proceed to element
n := n.FirstChild;
while n.NodeName <> 'element' do
n := n.NextSibling;
//get first element node
n := GetFirstElement;
//search elements for ElementName
while Assigned(n) and (TDomElement(n)['name'] <> ElementName) do
begin
n := n.NextSibling;
//no element found
if not Assigned(n) then
begin
InsertElement(ElementName);
Exit;
end;
while n.NodeName = '#comment' do
n := n.NextSibling;
@ -354,16 +460,19 @@ begin
S := Node.NodeName;
if S = 'short' then
Result.Short := GetFirstChildValue(Node);
Result[SHORT] := GetFirstChildValue(Node);
if S = 'descr' then
Result.Descr := GetFirstChildValue(Node);
Result[DESCR] := GetFirstChildValue(Node);
if S = 'errors' then
Result.Errors := GetFirstChildValue(Node);
Result[ERRORS] := GetFirstChildValue(Node);
if S = 'seealso' then
Result.SeeAlso := GetFirstChildValue(Node);
Result[SEEALSO] := GetFirstChildValue(Node);
if S = 'example' then
Result[EXAMPLE] := GetFirstChildValue(Node);
end;
Node := Node.NextSibling;
end;
@ -463,9 +572,10 @@ begin
ShortEdit.Clear;
DescrMemo.Clear;
ErrorsMemo.Clear;
LinkIdEdit.Clear;
LinkIdComboBox.Text := '';
LinkTextEdit.Clear;
LinkListBox.Clear;
ExampleEdit.Clear;
FChanged := False;
end;
@ -503,34 +613,27 @@ begin
EnabledState := Assigned(n);
ShortEdit.Enabled := True;
DescrMemo.Enabled := True;
ErrorsMemo.Enabled := True;
LinkIdEdit.Enabled := True;
LinkTextEdit.Enabled := True;
LinkListBox.Enabled := True;
AddLinkButton.Enabled := True;
DeleteLinkButton.Enabled := True;
if Assigned(n) then
begin
dn := ElementFromNode(n);
ShortEdit.Text := dn.Short;
DescrMemo.Lines.Text := ConvertLineEndings(dn.Descr);
ErrorsMemo.Lines.Text := ConvertLineEndings(dn.Errors);
LinkListBox.Items.Text := ConvertLineEndings(dn.SeeAlso);
LinkIdEdit.Clear;
ShortEdit.Text := dn[SHORT];
DescrMemo.Lines.Text := ConvertLineEndings(dn[DESCR]);
ErrorsMemo.Lines.Text := ConvertLineEndings(dn[ERRORS]);
LinkListBox.Items.Text := ConvertLineEndings(dn[SEEALSO]);
LinkIdComboBox.Text := '';
LinkTextEdit.Clear;
ExampleEdit.Text := Copy(dn[EXAMPLE], 16, Length(dn[EXAMPLE]) - 19);
end
else
begin
ShortEdit.Text := lisLazDocNoDocumentation;
DescrMemo.Lines.Text := lisLazDocNoDocumentation;
ErrorsMemo.Lines.Text := lisLazDocNoDocumentation;
LinkIdEdit.Text := lisLazDocNoDocumentation;
LinkIdComboBox.Text := lisLazDocNoDocumentation;
LinkTextEdit.Text := lisLazDocNoDocumentation;
LinkListBox.Clear;
ExampleEdit.Text := lisLazDocNoDocumentation;
end;
FChanged := False;
@ -538,18 +641,66 @@ begin
ShortEdit.Enabled := EnabledState;
DescrMemo.Enabled := EnabledState;
ErrorsMemo.Enabled := EnabledState;
LinkIdEdit.Enabled := EnabledState;
LinkIdComboBox.Enabled := EnabledState;
LinkTextEdit.Enabled := EnabledState;
LinkListBox.Enabled := EnabledState;
AddLinkButton.Enabled := EnabledState;
DeleteLinkButton.Enabled := EnabledState;
ExampleEdit.Enabled := EnabledState;
BrowseExampleButton.Enabled := EnabledState;
end;
function ToUnixLineEnding(s: String): String;
begin
if LineEnding = #10 then
Result := s
else
Result := StringReplace(s, LineEnding, #10, [rfReplaceAll]);
end;
procedure TLazDocForm.Save;
var
n: TDOMNode;
S: String;
child: TDOMNode;
NodeWritten: array [1..NODEITEMS] of Boolean;
i: Integer;
procedure CheckAndWriteNode(NodeName: String; NodeText: String;
NodeIndex: Integer);
var
child: TDOMNode;
begin
{$ifdef dbgLazDoc}
DebugLn('TLazDocForm.Save[CheckAndWriteNode]: checking element: ' +
NodeName);
{$endif}
if S = NodeName then
begin
if not Assigned(n.FirstChild) then
begin
child := doc.CreateTextNode(ToUnixLineEnding(NodeText));
n.AppendChild(child);
end
else
n.FirstChild.NodeValue := ToUnixLineEnding(NodeText);
NodeWritten[NodeIndex] := True;
end;
end;
procedure InsertNodeElement(ElementName: String; ElementText: String);
var
child: TDOMNode;
begin
{$ifdef dbgLazDoc}
DebugLn('TLazDocForm.Save[InsertNodeElement]: inserting element: ' +
ElementName);
{$endif}
child := doc.CreateElement(ElementName);
child.AppendChild(doc.CreateTextNode(ToUnixLineEnding(ElementText)));
n.AppendChild(child);
end;
begin
//nothing changed, so exit
@ -561,6 +712,11 @@ begin
if not Assigned(n) then
Exit;
//reset all nodes
for i := 1 to NODEITEMS do
NodeWritten[i] := False;
//write all known nodes to XML
n := n.FirstChild;
while Assigned(n) do
begin
@ -568,45 +724,34 @@ begin
begin
S := n.NodeName;
if S = 'short' then
if not Assigned(n.FirstChild) then
begin
child := doc.CreateTextNode(ShortEdit.Text);
n.AppendChild(child);
end
else
n.FirstChild.NodeValue := ShortEdit.Text;
if S = 'descr' then
if not Assigned(n.FirstChild) then
begin
child := doc.CreateTextNode(StringListToText(DescrMemo.Lines, #10));
n.AppendChild(child);
end
else
n.FirstChild.NodeValue := StringListToText(DescrMemo.Lines, #10);
if S = 'errors' then
if not Assigned(n.FirstChild) then
begin
child := doc.CreateTextNode(StringListToText(ErrorsMemo.Lines, #10));
n.AppendChild(child);
end
else
n.FirstChild.NodeValue := StringListToText(ErrorsMemo.Lines, #10);
if S = 'seealso' then
if not Assigned(n.FirstChild) then
begin
child := doc.CreateTextNode(StringListToText(LinkListBox.Items, #10));
n.AppendChild(child);
end
else
n.FirstChild.NodeValue := StringListToText(LinkListBox.Items, #10);
CheckAndWriteNode('short', ShortEdit.Text, SHORT);
CheckAndWriteNode('descr', DescrMemo.Text, DESCR);
CheckAndWriteNode('errors', ErrorsMemo.Text, ERRORS);
CheckAndWriteNode('seealso', LinkListBox.Text, SEEALSO);
CheckAndWriteNode('example', '<example file="' +
ExampleEdit.Text + '"/>', EXAMPLE);
end;
n := n.NextSibling;
end;
//add new nodes to XML if not already updated
n := NodeByName(FCurrentElement);
for i := 1 to NODEITEMS do
if NodeWritten[i] = False then
case i of
SHORT:
InsertNodeElement('short', ShortEdit.Text);
DESCR:
InsertNodeElement('descr', DescrMemo.Text);
ERRORS:
InsertNodeElement('errors', ErrorsMemo.Text);
SEEALSO:
InsertNodeElement('seealso', LinkListBox.Text);
EXAMPLE:
InsertNodeElement('example', '<example file="' +
ExampleEdit.Text + '"/>');
end;
WriteXMLFile(doc, FDocFileName);
FChanged := False;
@ -617,24 +762,41 @@ begin
FChanged := True;
end;
function TLazDocForm.MakeLink: String;
begin
if Trim(LinkTextEdit.Text) = '' then
Result := '<link id="' + Trim(LinkIdComboBox.Text) + '"/>'
else
Result := '<link id="' + Trim(LinkIdComboBox.Text) + '">' +
LinkTextEdit.Text + '</link>';
end;
procedure TLazDocForm.AddLinkButtonClick(Sender: TObject);
begin
if Trim(LinkIdEdit.Text) <> '' then
FLinkIndex := -1;
if Trim(LinkIdComboBox.Text) <> '' then
begin
if Trim(LinkTextEdit.Text) = '' then
LinkListBox.Items.Add('<link id="' + Trim(LinkIdEdit.Text) + '"/>')
else
LinkListBox.Items.Add('<link id="' + Trim(LinkIdEdit.Text) + '">' + LinkTextEdit.Text + '</link>');
LinkListBox.Items.Add(MakeLink);
FChanged := True;
end;
end;
procedure TLazDocForm.BrowseExampleButtonClick(Sender: TObject);
begin
if OpenDialog.Execute then
ExampleEdit.Text := SetDirSeparators(ExtractRelativepath(
ExtractFilePath(FDocFileName), OpenDialog.FileName));
end;
procedure TLazDocForm.DeleteLinkButtonClick(Sender: TObject);
begin
if LinkListBox.ItemIndex >= 0 then
if FLinkIndex >= 0 then
begin
LinkListBox.Items.Delete(LinkListBox.ItemIndex);
LinkListBox.Items.Delete(FLinkIndex);
FLinkIndex := -1;
FChanged := True;
end;

View File

@ -1863,12 +1863,7 @@ begin
itmViewInspector.OnClick := @mnuViewInspectorClicked;
itmViewSourceEditor.OnClick := @mnuViewSourceEditorClicked;
itmViewCodeExplorer.OnClick := @mnuViewCodeExplorerClick;
{$IFDEF EnableLazDoc}
itmViewLazDoc.OnClick := @mnuToolLazDocClicked; //DBlaszijk 5-sep-05
{$ELSE}
itmViewLazDoc.Visible := false;
itmViewLazDoc.Enabled := false;
{$ENDIF}
itmViewUnits.OnClick := @mnuViewUnitsClicked;
itmViewForms.OnClick := @mnuViewFormsClicked;
itmViewUnitDependencies.OnClick := @mnuViewUnitDependenciesClicked;
@ -2019,7 +2014,7 @@ end;
{------------------------------------------------------------------------------}
procedure TMainIDE.mnuFindDeclarationClicked(Sender: TObject);
begin
if SourceNoteBook.NoteBook=nil then exit;
if SourceNoteBook.Notebook=nil then exit;
DoFindDeclarationAtCursor;
end;
@ -2113,13 +2108,13 @@ end;
procedure TMainIDE.mnuRevertClicked(Sender: TObject);
begin
if SourceNoteBook.NoteBook=nil then exit;
DoOpenEditorFile('',SourceNoteBook.NoteBook.PageIndex,[ofRevert]);
if SourceNoteBook.Notebook=nil then exit;
DoOpenEditorFile('',SourceNoteBook.Notebook.PageIndex,[ofRevert]);
end;
procedure TMainIDE.mnuOpenFileAtCursorClicked(Sender: TObject);
begin
if SourceNoteBook.NoteBook=nil then exit;
if SourceNoteBook.Notebook=nil then exit;
DoOpenFileAtCursor(Sender);
end;
@ -2130,14 +2125,14 @@ end;
procedure TMainIDE.mnuSaveClicked(Sender: TObject);
begin
if SourceNoteBook.NoteBook=nil then exit;
DoSaveEditorFile(SourceNoteBook.NoteBook.PageIndex,[sfCheckAmbiguousFiles]);
if SourceNoteBook.Notebook=nil then exit;
DoSaveEditorFile(SourceNoteBook.Notebook.PageIndex,[sfCheckAmbiguousFiles]);
end;
procedure TMainIDE.mnuSaveAsClicked(Sender: TObject);
begin
if SourceNoteBook.NoteBook=nil then exit;
DoSaveEditorFile(SourceNoteBook.NoteBook.PageIndex,
if SourceNoteBook.Notebook=nil then exit;
DoSaveEditorFile(SourceNoteBook.Notebook.PageIndex,
[sfSaveAs,sfCheckAmbiguousFiles]);
end;
@ -2149,13 +2144,13 @@ end;
procedure TMainIDE.mnuCloseClicked(Sender: TObject);
var PageIndex: integer;
begin
if SourceNoteBook.NoteBook=nil then exit;
if SourceNoteBook.Notebook=nil then exit;
if Sender is TPage then begin
PageIndex:=SourceNoteBook.NoteBook.Pages.IndexOfObject(Sender);
PageIndex:=SourceNoteBook.Notebook.Pages.IndexOfObject(Sender);
if PageIndex<0 then
PageIndex:=SourceNoteBook.NoteBook.PageIndex;
PageIndex:=SourceNoteBook.Notebook.PageIndex;
end else begin
PageIndex:=SourceNoteBook.NoteBook.PageIndex;
PageIndex:=SourceNoteBook.Notebook.PageIndex;
end;
DoCloseEditorFile(PageIndex,[cfSaveFirst]);
end;
@ -2163,8 +2158,8 @@ end;
procedure TMainIDE.mnuCloseAllClicked(Sender: TObject);
begin
DoSaveAll([]);
while (SourceNoteBook.NoteBook<>nil)
and (DoCloseEditorFile(SourceNoteBook.NoteBook.PageIndex,
while (SourceNoteBook.Notebook<>nil)
and (DoCloseEditorFile(SourceNoteBook.Notebook.PageIndex,
[cfSaveFirst])=mrOk) do ;
end;
@ -4925,7 +4920,7 @@ begin
// update editor indices in project
if (not (ofProjectLoading in Flags)) and NewSrcEditorCreated then
Project1.InsertEditorIndex(SourceNotebook.NoteBook.PageIndex);
Project1.InsertEditorIndex(SourceNotebook.Notebook.PageIndex);
AnUnitInfo.EditorIndex:=SourceNotebook.FindPageWithEditor(NewSrcEdit);
// restore source editor settings
@ -5050,8 +5045,8 @@ begin
MainIDEBar.itmFileCloseAll.Enabled:=True;
NewSrcEdit:=SourceNotebook.GetActiveSE;
NewSrcEdit.SyntaxHighlighterType:=NewUnitInfo.SyntaxHighlighter;
Project1.InsertEditorIndex(SourceNotebook.NoteBook.PageIndex);
NewUnitInfo.EditorIndex:=SourceNotebook.NoteBook.PageIndex;
Project1.InsertEditorIndex(SourceNotebook.Notebook.PageIndex);
NewUnitInfo.EditorIndex:=SourceNotebook.Notebook.PageIndex;
// create component
AncestorType:=NewFileDescriptor.ResourceClass;
@ -5312,7 +5307,7 @@ begin
// close source editor
SourceNoteBook.CloseFile(PageIndex);
MainIDEBar.itmFileClose.Enabled:=SourceNoteBook.NoteBook<>nil;
MainIDEBar.itmFileClose.Enabled:=SourceNoteBook.Notebook<>nil;
MainIDEBar.itmFileCloseAll.Enabled:=MainIDEBar.itmFileClose.Enabled;
// close file in project
@ -5446,7 +5441,7 @@ begin
end;
if (not (ofProjectLoading in Flags)) and NewUnitInfo.Loaded then begin
// file already open -> change source notebook page
SourceNoteBook.NoteBook.PageIndex:=NewUnitInfo.EditorIndex;
SourceNoteBook.Notebook.PageIndex:=NewUnitInfo.EditorIndex;
Result:=mrOk;
exit;
end;
@ -5570,7 +5565,7 @@ begin
// check if main unit is already open in source editor
if (MainUnitInfo.EditorIndex>=0) and (not ProjectLoading) then begin
// already loaded -> switch to source editor
SourceNotebook.NoteBook.PageIndex:=MainUnitInfo.EditorIndex;
SourceNotebook.Notebook.PageIndex:=MainUnitInfo.EditorIndex;
Result:=mrOk;
exit;
end;
@ -5650,7 +5645,7 @@ Begin
if TViewUnitsEntry(UnitList[i]).Selected then begin
AnUnitInfo:=Project1.Units[TViewUnitsEntry(UnitList[i]).ID];
if AnUnitInfo.EditorIndex>=0 then begin
SourceNoteBook.NoteBook.PageIndex:=AnUnitInfo.EditorIndex;
SourceNoteBook.Notebook.PageIndex:=AnUnitInfo.EditorIndex;
end else begin
if Project1.MainUnitInfo=AnUnitInfo then
Result:=DoOpenMainUnit(false)
@ -6197,7 +6192,7 @@ begin
exit;
end;
// close all loaded files
while SourceNotebook.NoteBook<>nil do begin
while SourceNotebook.Notebook<>nil do begin
Result:=DoCloseEditorFile(SourceNotebook.Notebook.PageCount-1,
[cfProjectClosing]);
if Result=mrAbort then exit;
@ -6356,7 +6351,7 @@ begin
then begin
// open source was successful (at least the source)
if Project1.ActiveEditorIndexAtStart=LowestEditorIndex then
Project1.ActiveEditorIndexAtStart:=SourceNoteBook.NoteBook.PageIndex;
Project1.ActiveEditorIndexAtStart:=SourceNoteBook.Notebook.PageIndex;
LastEditorIndex:=LowestEditorIndex;
end else begin
// failed to open entirely -> mark as unloaded, so that next time
@ -6373,8 +6368,8 @@ begin
{$ENDIF}
// set active editor source editor
if (SourceNoteBook.NoteBook<>nil) and (Project1.ActiveEditorIndexAtStart>=0)
and (Project1.ActiveEditorIndexAtStart<SourceNoteBook.NoteBook.PageCount)
if (SourceNoteBook.Notebook<>nil) and (Project1.ActiveEditorIndexAtStart>=0)
and (Project1.ActiveEditorIndexAtStart<SourceNoteBook.Notebook.PageCount)
then
SourceNoteBook.Notebook.PageIndex:=Project1.ActiveEditorIndexAtStart;

View File

@ -604,10 +604,8 @@ type
read GetTargetFilename write SetTargetFilename;
property Units[Index: integer]: TUnitInfo read GetUnits write SetUnits;
property UpdateLock: integer read FUpdateLock;
{$IFDEF EnableLazDoc}
//lazdoc
property LazDocPathList: TStrings read FLazDocPathList write FLazDocPathList;
{$ENDIF}
end;
const
@ -1413,10 +1411,8 @@ begin
,TargetFileExt);
xmlconfig.SetDeleteValue(Path+'General/Title/Value', Title,'');
{$IFDEF EnableLazDoc}
//lazdoc
xmlconfig.SetValue(Path+'LazDoc/Paths', LazDocPathList.Text);
{$ENDIF}
SaveUnits;
@ -1613,10 +1609,8 @@ begin
UpdateSourceDirectories;
SourceDirectoriesUpdated:=true;
{$IFDEF EnableLazDoc}
//lazdoc
LazDocPathList.Text := xmlconfig.GetValue(Path+'LazDoc/Paths', '');
{$ENDIF}
{$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('TProject.ReadProject E reading comp sets');{$ENDIF}
// Load the compiler options

View File

@ -257,10 +257,8 @@ begin
(pfMainUnitHasTitleStatement in AProject.Flags);
RunnableCheckBox.Checked := (pfRunnable in AProject.Flags);
{$IFDEF EnableLazDoc}
//lazdoc
LazDocListBox.Items.Assign(Project.LazDocPathList);
{$ENDIF}
end;
procedure TProjectOptionsDialog.ProjectOptionsClose(Sender: TObject;
@ -307,10 +305,8 @@ begin
SetAutoCreateForms;
SetProjectTitle;
{$IFDEF EnableLazDoc}
//lazdoc
Project.LazDocPathList.Assign(LazDocListBox.Items);
{$ENDIF}
end;
IDEDialogLayoutList.SaveLayout(Self);
@ -318,21 +314,18 @@ end;
procedure TProjectOptionsDialog.LazDocAddPathButtonClick(Sender: TObject);
begin
{$IFNDEF EnableLazDoc}Exit;{$ENDIF}
if LazDocPathEdit.Text <> '' then
LazDocListBox.Items.Add(LazDocPathEdit.Text);
end;
procedure TProjectOptionsDialog.LazDocBrowseButtonClick(Sender: TObject);
begin
{$IFNDEF EnableLazDoc}Exit;{$ENDIF}
if SelectDirectoryDialog.Execute then
LazDocPathEdit.Text := SelectDirectoryDialog.FileName;
end;
procedure TProjectOptionsDialog.LazDocDeletePathButtonClick(Sender: TObject);
begin
{$IFNDEF EnableLazDoc}Exit;{$ENDIF}
LazDocListBox.Items.Delete(LazDocListBox.ItemIndex);
end;

34
ide/uniteditor.lfm Normal file
View File

@ -0,0 +1,34 @@
object SourceNoteBook: TSourceNoteBook
BorderStyle = bsSizeToolWin
Caption = 'SourceNoteBook'
ClientHeight = 300
ClientWidth = 400
PixelsPerInch = 96
HorzScrollBar.Page = 399
VertScrollBar.Page = 299
Left = 533
Height = 300
Top = 374
Width = 400
object StatusBar: TStatusBar
Panels = <
item
Width = 100
end
item
Width = 150
end
item
Width = 50
end
item
Text = 'INS'
Width = 50
end>
SimpleText = 'This is a test'
SimplePanel = False
Height = 23
Top = 277
Width = 400
end
end

12
ide/uniteditor.lrs Normal file
View File

@ -0,0 +1,12 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TSourceNoteBook','FORMDATA',[
'TPF0'#15'TSourceNoteBook'#14'SourceNoteBook'#11'BorderStyle'#7#13'bsSizeTool'
+'Win'#7'Caption'#6#14'SourceNoteBook'#12'ClientHeight'#3','#1#11'ClientWidth'
+#3#144#1#13'PixelsPerInch'#2'`'#18'HorzScrollBar.Page'#3#143#1#18'VertScroll'
+'Bar.Page'#3'+'#1#4'Left'#3#21#2#6'Height'#3','#1#3'Top'#3'v'#1#5'Width'#3
+#144#1#0#10'TStatusBar'#9'StatusBar'#6'Panels'#14#1#5'Width'#2'd'#0#1#5'Widt'
+'h'#3#150#0#0#1#5'Width'#2'2'#0#1#4'Text'#6#3'INS'#5'Width'#2'2'#0#0#10'Simp'
+'leText'#6#14'This is a test'#11'SimplePanel'#8#6'Height'#2#23#3'Top'#3#21#1
+#5'Width'#3#144#1#0#0#0
]);

View File

@ -376,9 +376,9 @@ type
{ TSourceNotebook }
TSourceNotebook = class(TSourceEditorWindowInterface)
Notebook: TNoteBook;
SrcPopUpMenu: TPopupMenu;
StatusBar: TStatusBar;
Notebook: TNotebook;
procedure AddBreakpointClicked(Sender: TObject);
procedure CompleteCodeMenuItemClick(Sender: TObject);
procedure DeleteBreakpointClicked(Sender: TObject);
@ -2659,33 +2659,6 @@ begin
ShortCut:=Menus.ShortCut(VK_UNKNOWN,[]);
end;
// statusbar
StatusBar := TStatusBar.Create(self);
with Statusbar do
begin
Parent := Self;
Name := 'StatusBar';
Visible := True;
SimpleText := 'This is a test';
Panels.Add; //x,y coord
Panels.Add; //Readonly/Modified
Panels.Add; //OVR/INS
Panels.Add; //Unitname
Panels[0].Text := '';
Panels[0].Width := 100;
Panels[0].Bevel := pbLowered;
Panels[1].Text := '';
Panels[1].Bevel := pbLowered;
Panels[1].Width := 150;
Panels[2].Text := '';
Panels[2].Bevel := pbLowered;
Panels[2].Width := 50;
Panels[3].Text := 'INS';
Panels[3].Bevel := pbLowered;
Panels[3].Width := 50;
SimplePanel := False;
end;
// goto dialog
GotoDialog := TfrmGoto.Create(self);
@ -2736,21 +2709,16 @@ end;
procedure TSourceNotebook.ShowLazDoc;
begin
{$IFNDEF EnableLazDoc}
exit;
{$ENDIF}
DoShowLazDoc;
LazDocNewPage;
end;
function FindPathFromFile(FileNamePath: string): string;
{$IFDEF EnableLazDoc}
var
i: integer;
fn: string;
pathlist: TStrings;
begin
{$IFDEF EnableLazDoc}
Result := '';
pathlist := TStringList.Create;
@ -2768,22 +2736,13 @@ begin
Exit;
end;
pathlist.Free;
{$ENDIF}
end;
{$ELSE}
begin
Result:=FileNamePath;
end;
{$ENDIF}
procedure TSourceNotebook.LazDocNewPage;
var
SrcEdit: TSourceEditor;
DocPath: string;
begin
{$IFNDEF EnableLazDoc}
exit;
{$ENDIF}
//try to find if the file belongs to LCL
//for other projects the location of the doc file could
//be found through the lpi file
@ -4962,10 +4921,8 @@ var TempEditor:TSourceEditor;
Begin
TempEditor:=GetActiveSE;
{$IFDEF EnableLazDoc}
LazDocNewPage;
{$ENDIF}
//writeln('TSourceNotebook.NotebookPageChanged ',Notebook.Pageindex,' ',TempEditor <> nil,' fAutoFocusLock=',fAutoFocusLock);
if TempEditor <> nil then
begin
@ -5205,21 +5162,17 @@ begin
FOnCtrlMouseUp(Sender,Button,Shift,X,Y);
end;
end;
{$IFDEF EnableLazDoc}
if Assigned(LazDocForm) then
UpdateLazDoc;
{$ENDIF}
end;
procedure TSourceNotebook.EditorKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
{$IFDEF EnableLazDoc}
if not Assigned(LazDocForm) then Exit;
if Key in [VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT, VK_END, VK_HOME] then
UpdateLazDoc;
{$ENDIF}
end;
procedure TSourceNotebook.ShowSynEditHint(const MousePos: TPoint);
@ -5495,7 +5448,7 @@ end;
initialization
InternalInit;
{$I uniteditor.lrs}
{$I ../images/bookmark.lrs}
finalization

View File

@ -490,9 +490,7 @@ type
FSessionModified: boolean;
fTitle: String;
FSessionStorage: TProjectSessionStorage;
{$IFDEF EnableLazDoc}
FLazDocPathList: TStrings;
{$ENDIF}
protected
FFlags: TProjectFlags;
procedure SetLazCompilerOptions(const AValue: TLazCompilerOptions);
@ -510,9 +508,7 @@ type
procedure SetSessionModified(const AValue: boolean); virtual;
public
constructor Create(ProjectDescription: TProjectDescriptor); virtual;
{$IFDEF EnableLazDoc}
destructor Destroy; override;
{$ENDIF}
function CreateProjectFile(const Filename: string
): TLazProjectFile; virtual; abstract;
procedure AddFile(ProjectFile: TLazProjectFile;
@ -539,9 +535,7 @@ type
write SetModified; // project data (not units, session)
property SessionModified: boolean read FSessionModified
write SetSessionModified; // project session data (not units, data)
{$IFDEF EnableLazDoc}
property LazDocPathList: TStrings read FLazDocPathList write FLazDocPathList;
{$ENDIF}
end;
TLazProjectClass = class of TLazProject;
@ -1014,18 +1008,14 @@ constructor TLazProject.Create(ProjectDescription: TProjectDescriptor);
begin
inherited Create;
FSessionStorage:=pssInProjectInfo;
{$IFDEF EnableLazDoc}
FLazDocPathList := TStringList.Create;
{$ENDIF}
end;
{$IFDEF EnableLazDoc}
destructor TLazProject.Destroy;
begin
FreeAndNil(FLazDocPathList);
inherited Destroy;
end;
{$ENDIF}
function TLazProject.ShortDescription: string;
begin