View Issue Details

IDProjectCategoryView StatusLast Update
0032325FPCDocumentationpublic2018-05-20 20:05
Reporterwp Assigned ToMarco van de Voort  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Summary0032325: (fpdoc) Index of Lazarus chm help files defective
DescriptionDouble-clicking on most items on page "Index" of LHelp does not open the corresponding help page although it is present.
Steps To ReproduceRun lhelp
Open lcl.chm (usually in Lazarus/docs/chm)
Select page "Index"
In the search box, type "TStringGrid" to search the help for this control.
Double click on "Align" in the tree node which opens as a child of the "TStringGrid" item.
Nothing happens, the status bar displays "ms-its:lcl.ch,::/grids/tstringgrid.alig.html not found".

But this page really does exist:
Select page "Contents"
In the left tree of help items, navigate to "Classes and Objects, by Unit" > "Grids" > "TStringGrid".
In the right part of the window click on the link to "Align" - it works!

Some help items do work on the "Index" page:
Return to page "Index"
Double-click on "OnEditingDone" (of node "TStringCellEditor") which is two lines above the "TStringGrid" item --> it works
TagsNo tags attached.
Fixed in Revision39065
FPCOldBugId
FPCTarget
Attached Files

Activities

wp

2017-08-24 09:21

reporter  

lhelp.png (34,090 bytes)   
lhelp.png (34,090 bytes)   

Marco van de Voort

2017-08-24 14:10

manager   ~0102344

Does the node open if you just open the CHM in Windows help viewer? Would make it clearer if it was a lhelp or a fpdoc problem.

And which lcl chm do you use exactly?

wp

2017-08-24 15:08

reporter   ~0102346

Last edited: 2017-08-24 15:09

View 2 revisions

> Does the node open if you just open the CHM in Windows help viewer? Would make it clearer if it was a lhelp or a fpdoc problem.

Double-clicking the node in the same way using the Windows-interal chm viewer, I get a similar effect, just the message is different, saying (translated from German): "No access to this page - make sure that the web address //ieframe.dll/dnserrordiagoff.htm# is correct / seek this web page using Bing / Update page"


> And which lcl chm do you use exactly?

I used the chm which comes with Lazarus 1.8RC4, but used also the one which comes with Laz 1.0 and it shows the same effect. It also does not matter whether I use the LHelp of Laz1.8RC4 or Laz1.0.

wp

2017-08-24 15:49

reporter   ~0102347

Last edited: 2017-08-24 20:18

View 4 revisions

Peeking into the structure of the lcl.chm file I get this result:

Index file Default.hhk has a node "Align property" underneath the LI of TStringGrid (beginning at line 174240) - this link points to the file "grids/tstringgrid.align.html". Looking for it in folder grids I cannot find it.

For the functional link on the Contents page, however, I find this: In file Default.hhc there is a LI node "grids" (line 1892) with a subnode for the TStringGrid pointing to file "grids/tstringgrid.html" (line 1956). In this context there is no reference to the Align property. A link to "Align" appears in the html file tstringgrid.html where it points to file "../controls/tcontrol.align.html" (line 45). And this file does exist.

So I think, the observation in my report is just a consequence of the fact that the help of TStringGrid has not been written for every item (I can't check this because I don't have the xml files at the moment).

The questions, maybe, are: Why do non-existing help topics appear in the Index? And: Couldn't the help topics of inherited items be made to point to the correct ancestor item (like the link in the stringgrid.html file does).

Marco van de Voort

2017-08-25 17:34

manager   ~0102376

Last edited: 2017-08-25 17:35

View 2 revisions

===> move to fpc since it is fpdoc and not lhelp or the way of generation related.

I'm home and checked, and indeed. The code of the index generation looks very simple and is mostly a loop around a general fpdoc/html function. Maybe something changed there.

Probably needs to be compared to the code that generates the class overview (since there inheritance is treated right, as already mentioned on lazarusforum.de)

Also it is possible it is not noticable in FPC chms because those default to no generation of code for empty nodes (IOW empty nodes don't exist)

Marco van de Voort

2018-05-20 15:20

manager  

fpdocbug32325.zip (3,264 bytes)

Marco van de Voort

2018-05-20 15:25

manager   ~0108446

I've started working on this yesterday and initially got nowhere in my attempt to reproduce with a small program (ran into different bugs even).

Now I can reproduce. Since it is only 4kb, I'll attach it to this project since it is interesting to have for future reference.

The problem is that my makeskel runs didn't create back links in the element like in grids.xml, so I had roughly the same structure but not the problem.

<element link="#bug32325.paren.TXControl.Align" name="TXStringGrid.Align">

Probably some logic of addhtmllink resolves this, but because the generateindex code doesn't use html href tags, it doesn't use it. I'll try to patch a version of addhtmllink for local usage in dw_chm.inc that only gives back the link target and use that. It might solve some other index problems too.

Marco van de Voort

2018-05-20 19:09

manager   ~0108452

Hopefully 4000+ cases of this issue (TStringgrid.align) fixed.

Experimental CHMs at http:/www.stack.nl/~marcov/new304/lcl-chm.zip which are linked against the newer FPC 3.0.4 chms at

http:/www.stack.nl/~marcov/new304/doc-chm.zip

As an experiment, the Lazarus CHMs were generated on Windows. Please report any anomalies. A log is included and contains a warning/hint to list the cases where the fix engages. If there are new problems check against the log if the relevant symbol was fixed.

Log looks like:
resolved:grids/tstringgrid.align.html to controls/tcontrol.align.html

The commited version minorly improved on the message.

wp

2018-05-20 20:05

reporter   ~0108454

I downloaded the chm-zips from your site, copied them into the folder (lazarus)/docs/chm, and tested them following the "steps to reproduce" --> Yes, works fine now! Thank you.

Issue History

Date Modified Username Field Change
2017-08-24 09:19 wp New Issue
2017-08-24 09:20 wp Steps to Reproduce Updated View Revisions
2017-08-24 09:21 wp File Added: lhelp.png
2017-08-24 14:10 Marco van de Voort Note Added: 0102344
2017-08-24 15:08 wp Note Added: 0102346
2017-08-24 15:09 wp Note Edited: 0102346 View Revisions
2017-08-24 15:10 wp Steps to Reproduce Updated View Revisions
2017-08-24 15:49 wp Note Added: 0102347
2017-08-24 15:50 wp Note Edited: 0102347 View Revisions
2017-08-24 15:51 wp Note Edited: 0102347 View Revisions
2017-08-24 20:18 wp Note Edited: 0102347 View Revisions
2017-08-25 17:32 Marco van de Voort Project Lazarus => FPC
2017-08-25 17:34 Marco van de Voort Note Added: 0102376
2017-08-25 17:34 Marco van de Voort Summary Index of Lazarus chm help files defective => (fpdoc) Index of Lazarus chm help files defective
2017-08-25 17:35 Marco van de Voort Note Edited: 0102376 View Revisions
2018-05-12 21:28 Marco van de Voort Assigned To => Marco van de Voort
2018-05-12 21:28 Marco van de Voort Status new => assigned
2018-05-20 15:20 Marco van de Voort File Added: fpdocbug32325.zip
2018-05-20 15:25 Marco van de Voort Note Added: 0108446
2018-05-20 19:09 Marco van de Voort Fixed in Revision => 39065
2018-05-20 19:09 Marco van de Voort Note Added: 0108452
2018-05-20 19:09 Marco van de Voort Status assigned => resolved
2018-05-20 19:09 Marco van de Voort Resolution open => fixed
2018-05-20 20:05 wp Note Added: 0108454
2018-05-20 20:05 wp Status resolved => closed