View Issue Details

IDProjectCategoryView StatusLast Update
0023411LazarusIDEpublic2013-03-20 13:34
ReporterBigChimpAssigned ToMattias Gaertner 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
PlatformWindows x64OSWindowsOS VersionVista
Product Version1.1 (SVN)Product Buildr39341 
Target VersionFixed in Version 
Summary0023411: No help menu item
DescriptionOpen Help menu.

Expected behaviour: Help menu item should be available that shows offline help

Actual behaviour: only Online Help menu item available

Explanation: context-sensitive offline help is built into Lazarus (F1).
- Not having a general offline help menu is inconsistent.
- It may also be confusing as people may not realise there actually is context-sensitive help.

Suggested solution: add Help menu item above the Online Help menu item.
This item should open one of the following (in decreasing order of preference):
1. The Table of Contents (toc.chm) distributed with offline help
2. All known CHM help files so the user can start browsing help (this would depend on bug 22110)
3. Any/the first CHM help file so at least lhelp is started and the user can open chm files by himself. Not very desirable.
Additional InformationAn additional suggestion could be to map the F1 key to the action used in the Help menu item if no context-sensitive help is found, which is the way many other applications work.
Tagshelp, lhelp
Fixed in Revision40593
LazTarget-
WidgetsetWin32/Win64
Attached Files
  • offlinehelp.diff (6,376 bytes)
    Index: ide/mainbase.pas
    ===================================================================
    --- ide/mainbase.pas	(revision 39559)
    +++ ide/mainbase.pas	(working copy)
    @@ -968,6 +968,8 @@
         CreateMenuSeparatorSection(mnuHelp,itmOnlineHelps,'itmOnlineHelps');
         ParentMI:=itmOnlineHelps;
     
    +    CreateMenuItem(ParentMI,itmHelpOfflineHelp,'itmHelpOfflineHelp',
    +                   lisMenuOfflineHelp, 'menu_offline_help');
         CreateMenuItem(ParentMI,itmHelpOnlineHelp,'itmHelpOnlineHelp',
                        lisMenuOnlineHelp, 'menu_help');
         CreateMenuItem(ParentMI,itmHelpReportingBug,'itmHelpReportingBug',
    @@ -1208,6 +1210,7 @@
     
         // help menu
         itmHelpAboutLazarus.Command:=GetCommand(ecAboutLazarus);
    +    itmHelpOfflineHelp.Command:=GetCommand(ecOfflineHelp);
         itmHelpOnlineHelp.Command:=GetCommand(ecOnlineHelp);
         itmHelpReportingBug.Command:=GetCommand(ecReportingBug);
       end;
    Index: ide/lazarusidestrconsts.pas
    ===================================================================
    --- ide/lazarusidestrconsts.pas	(revision 39559)
    +++ ide/lazarusidestrconsts.pas	(working copy)
    @@ -488,6 +488,7 @@
       dlgEdCodeTempl = 'Code Templates';
       dlgTplFName = 'Template file name';
     
    +  lisMenuOfflineHelp = 'Help';
       lisMenuOnlineHelp = 'Online Help';
       lisMenuReportingBug = 'Reporting a Bug';
       lisReportingBugURL = 'http://wiki.lazarus.freepascal.org/How_do_I_create_a_bug_report';
    Index: ide/keymapping.pp
    ===================================================================
    --- ide/keymapping.pp	(revision 39559)
    +++ ide/keymapping.pp	(working copy)
    @@ -639,6 +639,7 @@
     
         // help menu
         ecAboutLazarus            : Result:= lisAboutLazarus;
    +    ecOfflineHelp             : Result:= lisMenuOfflineHelp;
         ecOnlineHelp              : Result:= lisMenuOnlineHelp;
         ecContextHelp             : Result:= lisMenuContextHelp;
         ecEditContextHelp         : Result:= lisMenuEditContextHelp;
    @@ -1252,6 +1253,7 @@
     
       // help menu
       ecAboutLazarus:        SetSingle(VK_UNKNOWN,[]);
    +  ecOfflineHelp:         SetSingle(VK_UNKNOWN,[]); //todo: or should we combine with ecContextHelp?
       ecOnlineHelp:          SetSingle(VK_UNKNOWN,[]);
       ecContextHelp:         SetSingle(VK_F1,[]);
       ecEditContextHelp:     SetSingle(VK_F1,[ssShift,ssCtrl]);
    @@ -1685,6 +1687,7 @@
     
       // help menu
       ecAboutLazarus:        SetSingle(VK_UNKNOWN,[]);
    +  ecOfflineHelp:         SetSingle(VK_UNKNOWN,[]);
       ecOnlineHelp:          SetSingle(VK_UNKNOWN,[]);
       ecContextHelp:         SetSingle(VK_F1,[ssCtrl]);
       ecEditContextHelp:     SetSingle(VK_F1,[ssCtrl,ssShift]);
    @@ -2307,6 +2310,7 @@
     
       // help menu
       ecAboutLazarus:        SetSingle(VK_UNKNOWN,[]);
    +  ecOfflineHelp:         SetSingle(VK_UNKNOWN,[]);
       ecOnlineHelp:          SetSingle(VK_UNKNOWN,[]);
       ecContextHelp:         SetSingle(VK_F1,[],VK_HELP,[]);
       ecEditContextHelp:     SetSingle(VK_F1,[ssShift,ssCtrl], VK_HELP,[ssCtrl]);
    @@ -2968,6 +2972,7 @@
       // help menu
       C:=Categories[AddCategory('HelpMenu',srkmCarHelpMenu,nil)];
       AddDefault(C, 'About Lazarus', lisAboutLazarus, ecAboutLazarus);
    +  AddDefault(C, 'Help', lisMenuOfflineHelp, ecOfflineHelp);
       AddDefault(C, 'Online Help', lisMenuOnlineHelp, ecOnlineHelp);
       AddDefault(C, 'Context sensitive help', lisKMContextSensitiveHelp, ecContextHelp);
       AddDefault(C, 'Edit context sensitive help', lisKMEditContextSensitiveHelp, ecEditContextHelp);
    Index: ide/idehelpmanager.pas
    ===================================================================
    --- ide/idehelpmanager.pas	(revision 39559)
    +++ ide/idehelpmanager.pas	(working copy)
    @@ -171,6 +171,7 @@
       TIDEHelpManager = class(TBaseHelpManager)
         // help menu of the IDE menu bar
         procedure mnuHelpAboutLazarusClicked(Sender: TObject);
    +    procedure mnuHelpOfflineHelpClicked(Sender: TObject);
         procedure mnuHelpOnlineHelpClicked(Sender: TObject);
         procedure mnuHelpReportBugClicked(Sender: TObject);
         // fpdoc
    @@ -1120,6 +1121,12 @@
       ShowAboutForm;
     end;
     
    +procedure TIDEHelpManager.mnuHelpOfflineHelpClicked(Sender: TObject);
    +begin
    +  // This assumes using HTML or CHM offline help which supports text/html MIME
    +  ShowHelpOrError('index.html','Help','text/html');
    +end;
    +
     procedure TIDEHelpManager.mnuHelpOnlineHelpClicked(Sender: TObject);
     begin
       ShowLazarusHelpStartPage;
    @@ -1295,6 +1302,7 @@
       with MainIDEBar do
       begin
         itmHelpAboutLazarus.OnClick := @mnuHelpAboutLazarusClicked;
    +    itmHelpOfflineHelp.OnClick := @mnuHelpOfflineHelpClicked;
         itmHelpOnlineHelp.OnClick := @mnuHelpOnlineHelpClicked;
         itmHelpReportingBug.OnClick := @mnuHelpReportBugClicked;
     
    Index: ide/mainbar.pas
    ===================================================================
    --- ide/mainbar.pas	(revision 39559)
    +++ ide/mainbar.pas	(working copy)
    @@ -359,6 +359,7 @@
         // help menu
         //mnuHelp: TIDEMenuSection;
           //itmOnlineHelps: TIDEMenuSection;
    +        itmHelpOfflineHelp: TIDEMenuCommand;
             itmHelpOnlineHelp: TIDEMenuCommand;
             itmHelpReportingBug: TIDEMenuCommand;
             //itmHelpConfigureHelp: TIDEMenuCommand;
    Index: ideintf/idecommands.pas
    ===================================================================
    --- ideintf/idecommands.pas	(revision 39559)
    +++ ideintf/idecommands.pas	(working copy)
    @@ -327,6 +327,7 @@
       ecEditContextHelp         = ecFirstLazarus + 904;
       ecReportingBug            = ecFirstLazarus + 905;
       ecFocusHint               = ecFirstLazarus + 906;
    +  ecOfflineHelp             = ecFirstLazarus + 907;
     
       // designer
       ecDesignerCopy            = ecFirstLazarus + 1000;
    @@ -1221,7 +1222,7 @@
     end;
     
     const
    -  IDEEditorCommandStrs: array[0..297] of TIdentMapEntry = (
    +  IDEEditorCommandStrs: array[0..298] of TIdentMapEntry = (
       // search
         (Value: ecFind;                                   Name: 'ecFind'),
         (Value: ecFindAgain;                              Name: 'ecFindAgain'),
    @@ -1494,6 +1495,7 @@
         (Value: ecEditContextHelp;                        Name: 'ecEditContextHelp'),
         (Value: ecReportingBug;                           Name: 'ecReportingBug'),
         (Value: ecFocusHint;                              Name: 'ecFocusHint'),
    +    (Value: ecOfflineHelp;                            Name: 'ecOfflineHelp'),
     
       // designer
         (Value: ecDesignerCopy;                           Name: 'ecDesignerCopy'),
    
    offlinehelp.diff (6,376 bytes)
  • wip_register_f1_as_help.zip (4,629 bytes)
  • register_offline_help_menu.zip (4,266 bytes)
  • helpmenu_compilelhelp.diff (1,723 bytes)
    Index: components/chmhelp/packages/idehelp/lazchmhelp.pas
    ===================================================================
    --- components/chmhelp/packages/idehelp/lazchmhelp.pas	(revision 40590)
    +++ components/chmhelp/packages/idehelp/lazchmhelp.pas	(working copy)
    @@ -419,23 +419,25 @@
     procedure TChmHelpViewer.ShowAllHelp(Sender: TObject);
     var
       SearchPath: String; //; delimited list of directories
    -  LHelpFilename: String;
    +  HelpExeFileName: String;
     begin
    +  // Make sure the lhelp help viewer exists; build it if doesn't and it is lhelp
    +  HelpExeFileName:=GetHelpExe;
    +  if (not FileExistsUTF8(HelpExeFileName)) and
    +    ((ExtractFileNameOnly(HelpExeFileName) = 'lhelp') and (CheckBuildLHelp <> mrOK)) then begin
    +    IDEMessageDialog(HELP_MissingLhelp, Format(
    +      HELP_UnableToFindTheLhelpViewerPleaseCompileTheLhelpPro,
    +      [#13, HelpExeFileName, #13, #13, #13,
    +      SetDirSeparators('components/chmhelp/lhelp/lhelp.lpi')]),
    +      mtError,[mbCancel]);
    +    exit;
    +  end;
    +
       SearchPath := GetHelpFilesPath;
       // Start up server if needed
       if not(fHelpConnection.ServerRunning) then
       begin
    -    LHelpFilename:=GetHelpExe;
    -    if not FileExistsUTF8(LHelpFilename) then
    -    begin
    -      IDEMessageDialog(HELP_MissingLhelp, Format(
    -        HELP_UnableToFindTheLhelpViewerPleaseCompileTheLhelpPro,
    -        [#13, LHelpFilename, #13, #13, #13,
    -        SetDirSeparators('components/chmhelp/lhelp/lhelp.lpi')]),
    -        mtError,[mbCancel]);
    -      exit;
    -    end;
    -    fHelpConnection.StartHelpServer(HelpLabel, LHelpFilename);
    +    fHelpConnection.StartHelpServer(HelpLabel, HelpExeFileName);
       end;
       // Open all chm files after it has started
       OpenAllCHMsInSearchPath(SearchPath);
    

Relationships

related to 0022110 closedMattias Gaertner Help (at least CHM help) should open all help files to enable content/index search 

Activities

2012-12-16 17:39

 

offlinehelp.diff (6,376 bytes)
Index: ide/mainbase.pas
===================================================================
--- ide/mainbase.pas	(revision 39559)
+++ ide/mainbase.pas	(working copy)
@@ -968,6 +968,8 @@
     CreateMenuSeparatorSection(mnuHelp,itmOnlineHelps,'itmOnlineHelps');
     ParentMI:=itmOnlineHelps;
 
+    CreateMenuItem(ParentMI,itmHelpOfflineHelp,'itmHelpOfflineHelp',
+                   lisMenuOfflineHelp, 'menu_offline_help');
     CreateMenuItem(ParentMI,itmHelpOnlineHelp,'itmHelpOnlineHelp',
                    lisMenuOnlineHelp, 'menu_help');
     CreateMenuItem(ParentMI,itmHelpReportingBug,'itmHelpReportingBug',
@@ -1208,6 +1210,7 @@
 
     // help menu
     itmHelpAboutLazarus.Command:=GetCommand(ecAboutLazarus);
+    itmHelpOfflineHelp.Command:=GetCommand(ecOfflineHelp);
     itmHelpOnlineHelp.Command:=GetCommand(ecOnlineHelp);
     itmHelpReportingBug.Command:=GetCommand(ecReportingBug);
   end;
Index: ide/lazarusidestrconsts.pas
===================================================================
--- ide/lazarusidestrconsts.pas	(revision 39559)
+++ ide/lazarusidestrconsts.pas	(working copy)
@@ -488,6 +488,7 @@
   dlgEdCodeTempl = 'Code Templates';
   dlgTplFName = 'Template file name';
 
+  lisMenuOfflineHelp = 'Help';
   lisMenuOnlineHelp = 'Online Help';
   lisMenuReportingBug = 'Reporting a Bug';
   lisReportingBugURL = 'http://wiki.lazarus.freepascal.org/How_do_I_create_a_bug_report';
Index: ide/keymapping.pp
===================================================================
--- ide/keymapping.pp	(revision 39559)
+++ ide/keymapping.pp	(working copy)
@@ -639,6 +639,7 @@
 
     // help menu
     ecAboutLazarus            : Result:= lisAboutLazarus;
+    ecOfflineHelp             : Result:= lisMenuOfflineHelp;
     ecOnlineHelp              : Result:= lisMenuOnlineHelp;
     ecContextHelp             : Result:= lisMenuContextHelp;
     ecEditContextHelp         : Result:= lisMenuEditContextHelp;
@@ -1252,6 +1253,7 @@
 
   // help menu
   ecAboutLazarus:        SetSingle(VK_UNKNOWN,[]);
+  ecOfflineHelp:         SetSingle(VK_UNKNOWN,[]); //todo: or should we combine with ecContextHelp?
   ecOnlineHelp:          SetSingle(VK_UNKNOWN,[]);
   ecContextHelp:         SetSingle(VK_F1,[]);
   ecEditContextHelp:     SetSingle(VK_F1,[ssShift,ssCtrl]);
@@ -1685,6 +1687,7 @@
 
   // help menu
   ecAboutLazarus:        SetSingle(VK_UNKNOWN,[]);
+  ecOfflineHelp:         SetSingle(VK_UNKNOWN,[]);
   ecOnlineHelp:          SetSingle(VK_UNKNOWN,[]);
   ecContextHelp:         SetSingle(VK_F1,[ssCtrl]);
   ecEditContextHelp:     SetSingle(VK_F1,[ssCtrl,ssShift]);
@@ -2307,6 +2310,7 @@
 
   // help menu
   ecAboutLazarus:        SetSingle(VK_UNKNOWN,[]);
+  ecOfflineHelp:         SetSingle(VK_UNKNOWN,[]);
   ecOnlineHelp:          SetSingle(VK_UNKNOWN,[]);
   ecContextHelp:         SetSingle(VK_F1,[],VK_HELP,[]);
   ecEditContextHelp:     SetSingle(VK_F1,[ssShift,ssCtrl], VK_HELP,[ssCtrl]);
@@ -2968,6 +2972,7 @@
   // help menu
   C:=Categories[AddCategory('HelpMenu',srkmCarHelpMenu,nil)];
   AddDefault(C, 'About Lazarus', lisAboutLazarus, ecAboutLazarus);
+  AddDefault(C, 'Help', lisMenuOfflineHelp, ecOfflineHelp);
   AddDefault(C, 'Online Help', lisMenuOnlineHelp, ecOnlineHelp);
   AddDefault(C, 'Context sensitive help', lisKMContextSensitiveHelp, ecContextHelp);
   AddDefault(C, 'Edit context sensitive help', lisKMEditContextSensitiveHelp, ecEditContextHelp);
Index: ide/idehelpmanager.pas
===================================================================
--- ide/idehelpmanager.pas	(revision 39559)
+++ ide/idehelpmanager.pas	(working copy)
@@ -171,6 +171,7 @@
   TIDEHelpManager = class(TBaseHelpManager)
     // help menu of the IDE menu bar
     procedure mnuHelpAboutLazarusClicked(Sender: TObject);
+    procedure mnuHelpOfflineHelpClicked(Sender: TObject);
     procedure mnuHelpOnlineHelpClicked(Sender: TObject);
     procedure mnuHelpReportBugClicked(Sender: TObject);
     // fpdoc
@@ -1120,6 +1121,12 @@
   ShowAboutForm;
 end;
 
+procedure TIDEHelpManager.mnuHelpOfflineHelpClicked(Sender: TObject);
+begin
+  // This assumes using HTML or CHM offline help which supports text/html MIME
+  ShowHelpOrError('index.html','Help','text/html');
+end;
+
 procedure TIDEHelpManager.mnuHelpOnlineHelpClicked(Sender: TObject);
 begin
   ShowLazarusHelpStartPage;
@@ -1295,6 +1302,7 @@
   with MainIDEBar do
   begin
     itmHelpAboutLazarus.OnClick := @mnuHelpAboutLazarusClicked;
+    itmHelpOfflineHelp.OnClick := @mnuHelpOfflineHelpClicked;
     itmHelpOnlineHelp.OnClick := @mnuHelpOnlineHelpClicked;
     itmHelpReportingBug.OnClick := @mnuHelpReportBugClicked;
 
Index: ide/mainbar.pas
===================================================================
--- ide/mainbar.pas	(revision 39559)
+++ ide/mainbar.pas	(working copy)
@@ -359,6 +359,7 @@
     // help menu
     //mnuHelp: TIDEMenuSection;
       //itmOnlineHelps: TIDEMenuSection;
+        itmHelpOfflineHelp: TIDEMenuCommand;
         itmHelpOnlineHelp: TIDEMenuCommand;
         itmHelpReportingBug: TIDEMenuCommand;
         //itmHelpConfigureHelp: TIDEMenuCommand;
Index: ideintf/idecommands.pas
===================================================================
--- ideintf/idecommands.pas	(revision 39559)
+++ ideintf/idecommands.pas	(working copy)
@@ -327,6 +327,7 @@
   ecEditContextHelp         = ecFirstLazarus + 904;
   ecReportingBug            = ecFirstLazarus + 905;
   ecFocusHint               = ecFirstLazarus + 906;
+  ecOfflineHelp             = ecFirstLazarus + 907;
 
   // designer
   ecDesignerCopy            = ecFirstLazarus + 1000;
@@ -1221,7 +1222,7 @@
 end;
 
 const
-  IDEEditorCommandStrs: array[0..297] of TIdentMapEntry = (
+  IDEEditorCommandStrs: array[0..298] of TIdentMapEntry = (
   // search
     (Value: ecFind;                                   Name: 'ecFind'),
     (Value: ecFindAgain;                              Name: 'ecFindAgain'),
@@ -1494,6 +1495,7 @@
     (Value: ecEditContextHelp;                        Name: 'ecEditContextHelp'),
     (Value: ecReportingBug;                           Name: 'ecReportingBug'),
     (Value: ecFocusHint;                              Name: 'ecFocusHint'),
+    (Value: ecOfflineHelp;                            Name: 'ecOfflineHelp'),
 
   // designer
     (Value: ecDesignerCopy;                           Name: 'ecDesignerCopy'),
offlinehelp.diff (6,376 bytes)

Reinier Olislagers

2012-12-16 17:41

developer   ~0064339

Attached a patch that is partway there: shows help menu but doesn't do anything.
Please help with:
- the actual command to run in procedure TIDEHelpManager.mnuHelpOfflineHelpClicked
- keyboard assignments - I've not mapped F1 to offline help - don't know how it'll interfere with context sensitive help.
- icon on help menu

Thanks.

Reinier Olislagers

2013-03-02 06:17

developer   ~0065975

Guys, could you help me here? Thanks.

Mattias Gaertner

2013-03-03 12:08

manager   ~0065982

About:
"This item should open one of the following 1. toc.chm, 2. CHM help files, 3. CHM help file"

The chm help package should register menu items for chm files, not the IDE.

Reinier Olislagers

2013-03-05 09:58

developer  

wip_register_f1_as_help.zip (4,629 bytes)

Reinier Olislagers

2013-03-05 10:00

developer   ~0066016

Thanks. Attached patch + new file in wip_register_f1_as_help.zip compiles but gives an AV when Lazarus starts:
[FORMS.PP] ExceptionOccurred
  Sender=EAccessViolation
  Exception=Access violation
  Stack trace:
  $00A531AC THELPDATABASES__COUNT, line 1362 of lazhelpintf.pas
  $00BA56F8 TCHMHELPVIEWER__CREATE, line 371 of lazchmhelp.pas
  $00BA7C73 LAZCHMHELPREGISTER_$$_init, line 79 of lazchmhelpregister.pas
  $0040FD54
TApplication.HandleException Access violation
  Stack trace:
  $00A531AC THELPDATABASES__COUNT, line 1362 of lazhelpintf.pas
  $00BA56F8 TCHMHELPVIEWER__CREATE, line 371 of lazchmhelp.pas
  $00BA7C73 LAZCHMHELPREGISTER_$$_init, line 79 of lazchmhelpregister.pas
  $0040FD54

Perhaps the help viewer object is instantiated too early by the IDE?
Would appreciate some guidance. Thanks.

Mattias Gaertner

2013-03-05 10:18

manager   ~0066017

Why create the IDECHMHelp in the initialization instead of Register?

Reinier Olislagers

2013-03-05 10:49

developer   ~0066018

Why not? E.g. the jcf package does it that way. So you suggest creating it in Register and probably destroying it in a finalization section?

Mattias Gaertner

2013-03-05 10:59

manager   ~0066019

Why not??
It crashes. Is that not enough reason to change something?

IDEChmHelp requires some IDE features, which are only available in "Register".

Reinier Olislagers

2013-03-05 11:52

developer   ~0066023

Of course crashing is a reason to change things. My point is that I didn't know what to change... otherwise I would have obviously done so. Thanks for the explanation.

New zip works for me. Haven't assigned F1 to Help menu item as it messed with context sensitive help earlier. Of course, if that can be fixed, even better ;)

Reinier Olislagers

2013-03-05 11:52

developer  

register_offline_help_menu.zip (4,266 bytes)

Marco van de Voort

2013-03-06 16:55

manager   ~0066071

Btw, as said during the lazarus day, we can talk about the "toc.chm", and make anything that Lazarus wants (including generating it on the fly).

The toc.chm is basically a workaround for a problem of the textmode IDE, namely that it can only have one contents page. So I made toc.chm which are basically links to the other CHMs. (see fpcdocs/gentoc.pp)

Reinier Olislagers

2013-03-11 09:55

developer   ~0066176

Patch is ready for commit as far as I'm concerned.

Mattias Gaertner

2013-03-19 10:15

manager   ~0066393

Thanks.
I fixed the access violation when lhelp.exe is missing.

Reinier Olislagers

2013-03-19 12:45

developer   ~0066396

Sorry for the AV. Uploading patch that builds lhelp, avoiding need for user interaction.

Reinier Olislagers

2013-03-19 12:46

developer  

helpmenu_compilelhelp.diff (1,723 bytes)
Index: components/chmhelp/packages/idehelp/lazchmhelp.pas
===================================================================
--- components/chmhelp/packages/idehelp/lazchmhelp.pas	(revision 40590)
+++ components/chmhelp/packages/idehelp/lazchmhelp.pas	(working copy)
@@ -419,23 +419,25 @@
 procedure TChmHelpViewer.ShowAllHelp(Sender: TObject);
 var
   SearchPath: String; //; delimited list of directories
-  LHelpFilename: String;
+  HelpExeFileName: String;
 begin
+  // Make sure the lhelp help viewer exists; build it if doesn't and it is lhelp
+  HelpExeFileName:=GetHelpExe;
+  if (not FileExistsUTF8(HelpExeFileName)) and
+    ((ExtractFileNameOnly(HelpExeFileName) = 'lhelp') and (CheckBuildLHelp <> mrOK)) then begin
+    IDEMessageDialog(HELP_MissingLhelp, Format(
+      HELP_UnableToFindTheLhelpViewerPleaseCompileTheLhelpPro,
+      [#13, HelpExeFileName, #13, #13, #13,
+      SetDirSeparators('components/chmhelp/lhelp/lhelp.lpi')]),
+      mtError,[mbCancel]);
+    exit;
+  end;
+
   SearchPath := GetHelpFilesPath;
   // Start up server if needed
   if not(fHelpConnection.ServerRunning) then
   begin
-    LHelpFilename:=GetHelpExe;
-    if not FileExistsUTF8(LHelpFilename) then
-    begin
-      IDEMessageDialog(HELP_MissingLhelp, Format(
-        HELP_UnableToFindTheLhelpViewerPleaseCompileTheLhelpPro,
-        [#13, LHelpFilename, #13, #13, #13,
-        SetDirSeparators('components/chmhelp/lhelp/lhelp.lpi')]),
-        mtError,[mbCancel]);
-      exit;
-    end;
-    fHelpConnection.StartHelpServer(HelpLabel, LHelpFilename);
+    fHelpConnection.StartHelpServer(HelpLabel, HelpExeFileName);
   end;
   // Open all chm files after it has started
   OpenAllCHMsInSearchPath(SearchPath);

Issue History

Date Modified Username Field Change
2012-11-30 08:55 Reinier Olislagers New Issue
2012-11-30 08:55 Reinier Olislagers LazTarget => -
2012-11-30 08:55 Reinier Olislagers Widgetset => Win32/Win64
2012-12-01 00:00 Juha Manninen Relationship added related to 0022110
2012-12-16 17:39 Reinier Olislagers File Added: offlinehelp.diff
2012-12-16 17:41 Reinier Olislagers Note Added: 0064339
2012-12-18 11:16 Reinier Olislagers Tag Attached: help
2012-12-18 11:16 Reinier Olislagers Tag Attached: lhelp
2013-03-02 06:17 Reinier Olislagers Note Added: 0065975
2013-03-03 12:08 Mattias Gaertner Note Added: 0065982
2013-03-05 09:58 Reinier Olislagers File Added: wip_register_f1_as_help.zip
2013-03-05 10:00 Reinier Olislagers Note Added: 0066016
2013-03-05 10:18 Mattias Gaertner Note Added: 0066017
2013-03-05 10:49 Reinier Olislagers Note Added: 0066018
2013-03-05 10:59 Mattias Gaertner Note Added: 0066019
2013-03-05 11:52 Reinier Olislagers Note Added: 0066023
2013-03-05 11:52 Reinier Olislagers File Added: register_offline_help_menu.zip
2013-03-05 11:53 Reinier Olislagers Assigned To => Mattias Gaertner
2013-03-05 11:53 Reinier Olislagers Status new => assigned
2013-03-06 16:55 Marco van de Voort Note Added: 0066071
2013-03-11 09:55 Reinier Olislagers Note Added: 0066176
2013-03-19 10:15 Mattias Gaertner Note Added: 0066393
2013-03-19 10:15 Mattias Gaertner Status assigned => resolved
2013-03-19 10:15 Mattias Gaertner Resolution open => fixed
2013-03-19 12:45 Reinier Olislagers Note Added: 0066396
2013-03-19 12:45 Reinier Olislagers Status resolved => assigned
2013-03-19 12:45 Reinier Olislagers Resolution fixed => reopened
2013-03-19 12:46 Reinier Olislagers File Added: helpmenu_compilelhelp.diff
2013-03-20 10:00 Mattias Gaertner Fixed in Revision => 40593
2013-03-20 10:00 Mattias Gaertner Status assigned => resolved
2013-03-20 10:00 Mattias Gaertner Resolution reopened => fixed
2013-03-20 13:34 Reinier Olislagers Status resolved => closed