|
@@ -0,0 +1,29 @@
|
|
|
+program project1;
|
|
|
+{$mode objfpc}{$H+}
|
|
|
+
|
|
|
+uses Classes, SysUtils;
|
|
|
+
|
|
|
+type IHelpSystem = interface(IInterface) end;
|
|
|
+ THelpManager = class(TInterfacedObject, IHelpSystem) end;
|
|
|
+
|
|
|
+var HelpManager : THelpManager = nil;
|
|
|
+function GetHelpSystem(out H: IHelpSystem) : Integer;
|
|
|
+begin
|
|
|
+ if HelpManager = nil then HelpManager := THelpManager.Create; // if help manager is not created here, it works
|
|
|
+ H := HelpManager; // <-- remove this and it works
|
|
|
+ result := 0;
|
|
|
+end;
|
|
|
+
|
|
|
+procedure FreeHelpSystem;
|
|
|
+begin
|
|
|
+ if HelpManager <> nil then
|
|
|
+ HelpManager._Release;
|
|
|
+ HelpManager := nil;
|
|
|
+end;
|
|
|
+
|
|
|
+var h : IHelpSystem;
|
|
|
+begin
|
|
|
+ GetHelpSystem(h);
|
|
|
+ FreeHelpSystem;
|
|
|
+end.
|
|
|
+
|