Link to home
Start Free TrialLog in
Avatar of __alex
__alex

asked on

I need help (sorry, couldn't resist)

I want my application to have some help system (the F1 thingy). Actually my boss does. I've never done this before and I don't know how to use TApplication.HelpJump, HelpCommand, HelpContext. Links and tutorials are welcome. Thanks!
Avatar of Wim ten Brink
Wim ten Brink
Flag of Netherlands image

My boss once told me that one application needed a helpfile too. I then told him that he would need to hire a helpfile writer if he really wanted this because writing a helpfile isn't something a normal developer has to do. (Basically, you need some good writing skills for that, being able to write using a clear and easy to understand words, and make no spelling errors.) Once the helpfile would be ready, we would be able to integrate it within the application.
But my boss changed his mind again once he realised this. Using an expensive developer to write documentation that could also be written by a cheap, young writer is a huge waste of resources. But he also failed to find someone who could write that helpfile so the application is still without any help support. And the company went tits-up (not my fault) so it will never have a helpfile either...

Once the helpfile is created, you would get some file containing constants that will just help you to jump to the proper location in the helpfile.
Avatar of __alex
__alex

ASKER

I use the HLP file from my anti virus for testing. I guess it's done by a professional help file writer.
Yep. But don't you want to use a real, related helpfile instead? Tell your boss to let someone write the helpfile first before you include it in the application. That way, you have lots of time discovering how to do this while some poor student writer can start typing...
As a developer I've always refused to write helpfiles myself, simply because it's just a lot of typing that anyone could do. I consider myself to be too expensive for my company to be used for such simple tasks. And my boss did agree with this, since any time I waste on typing the helpfile, checking the spelling and whatever more means that other projects will have to wait until I'm finished.
The helpfile compiler will create the helpfile out of one or more *.rtf files and often creates a second file containing constants for the places that you can jump to. These constants are what you need in your code. Nothing more. You would use HelpContext() to jump to a location indexed by a number or HelpJump() to jump to a location indexed by a string. In the project options you assign the helpfile to your application. With HelpCommand() you just send commands to the help system. And finally several VCL components and dialogs might have a help index from those constants assigned to them, just automating the whole help search. It's not that complicated but I managed to avoid this so far by asking for a valid helpfile to attach to the application with a proper constants file. ;-)
Avatar of __alex

ASKER

> Yep. But don't you want to use a real, related helpfile instead?
Nope. Since the applications I develop are self-explanatory nobody will ever need any help. We plan to ship with the wrong help files. No, wait, I guess it's sufficient to make a screenshot of an arbitrary help file and just show the bitmap.
usual i do agree with alex, a developer should not write the helpfile,
not because its just typing a lot, which can do everyone, no , just because
a developer do not think as a normal user. a develeoper is good by describing
his code to help other developers.

in a company i had worked, there was an extra person, which wrote the helpfiles. this person had nothing to do with development, was a normal office user. and this person did a great job, better than i had ever done. btw. we had there a tool for creating helpfiles, as i have it correct in mind it was robohelp named.

well, if i had a small app, then i used the hint-properties as help (on/off adjustable)

meikl ;-)
ASKER CERTIFIED SOLUTION
Avatar of Ratje
Ratje

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Yep. Meikl understands me. :-)
Almost anyone can write a helpfile but it requires a specialist to develop software. Specialists are expensive so don't let them do things a cheaper person can do. And Meikl has another good argument. Developers are technicians, who would write a helpfile in techno-speach. You need someone who writes in just normal englist. (Or Dutch, German or whatever other language you need.)

I have seen many applications with a badly-written helpfile, often because a developer had to write it. Those kinds of helpfiles just make it even harder for users to understand what you're talking about. It is the same as with testing software. In the past we used to let developers test each others software. Thus many bugs would be found and most of them were just bugs that users probably wouldn't notice. Then the product was sent to the customers and the customers would generate an even bigger bug report full with things the developers never even considered to test. So for this too I told my boss that testing should be done by people who aren't developers. And it worked, the non-developers discovered a lot of bugs that the developers just missed. (Partly because they often didn't know what they were doing and thus tried to do everything.)

Explain the application to some non-developer and let him (or her) write the helpfiles for it. Then afterwards all you need to do is compile this documentation to a helpfile and add it to your application.
Or use more hints. A statusline that displays the hints would work too.
Avatar of __alex

ASKER

helpscribble.com offers free pascal sources to view *.chm files (the *.hlp substitute): http://download.jgsoft.com/helpscribble/UseHTMLHelp.zip
Avatar of __alex

ASKER

pascal sources -> Delphi sources
Avatar of __alex

ASKER

Thanks to all for the input!