lazarus/components/chmhelp/packages/idehelp/chmlcl.pas
mattias d400a7e51a chmhelp: fixed mem leak
git-svn-id: trunk@31314 -
2011-06-20 19:42:25 +00:00

69 lines
1.5 KiB
ObjectPascal

unit ChmLcl;
{$mode objfpc}{$H+}
interface
uses
Classes, LazHelpIntf, HelpFPDoc;
const
sLclUnits = 'LCL - Lazarus component library';
type
{ TLclChmHelpDatabase }
TLclChmHelpDatabase = class(TFPDocHTMLHelpDatabase)
private
FBaseURL: THelpBaseURLObject;
public
constructor Create(TheOwner: TComponent); override;
destructor Destroy; override;
end;
procedure RegisterLclHelpDatabase;
var
LCLHelpDatabase: TLclChmHelpDatabase = nil;
implementation
procedure RegisterLclHelpDatabase;
var
FPDocNode: THelpNode;
DirItem: THelpDBISourceDirectory;
begin
if Assigned(LCLHelpDatabase) then Exit;
LCLHelpDatabase := TLclChmHelpDatabase(
HelpDatabases.CreateHelpDatabase(sLclUnits, TLclChmHelpDatabase, True));
// FPDoc nodes for units in the LCL
FPDocNode := THelpNode.CreateURL(LCLHelpDatabase,
'LCL - Lazarus Component Library Units',
'file://index.html');
LCLHelpDatabase.TOCNode := THelpNode.Create(LCLHelpDatabase, FPDocNode);
DirItem := THelpDBISourceDirectory.Create(FPDocNode, '$(LazarusDir)/lcl',
'*.pp;*.pas;*.inc', True);// and once as normal page
LCLHelpDatabase.RegisterItem(DirItem);
end;
{ TLclChmHelpDatabase }
constructor TLclChmHelpDatabase.Create(TheOwner: TComponent);
begin
inherited Create(TheOwner);
FBaseURL := THelpBaseURLObject.Create;
FBaseURL.BaseURL := 'lcl.chm://';
BasePathObject := FBaseURL;
end;
destructor TLclChmHelpDatabase.Destroy;
begin
FBaseURL.Free;
inherited Destroy;
end;
end.