Turbo Vision help file compiler (TVHC.EXE). =========================================== Refer to OOPHELP.TXT for an example of a help source file. This program takes a help script and produces a help file (.HLP) and a help context file (.PAS). The format for the help file is very simple. Each context is given a symbolic name (i.e FileOpen) which is then put in the context file (i.e. hcFileOpen). The text following the topic line is put into the help file. Since the help file can be resized, some of the text will need to be wrapped to fit into the window. If a line of text is flush left with no preceding white space, the line will be wrapped. All adjacent wrappable lines are wrapped as a paragraph. If a line begins with a space it will not be wrapped. For example, the following is a help topic for a File|Open menu item. |.topic FileOpen | File|Open | --------- |This menu item will bring up a dialog... The "File|Open" will not be wrapped with the "----" line since they both begin with a space, but the "This menu..." line will be wrapped. The syntax for a ".topic" line is: .topic symbol[=number][, symbol[=number][...]] Note a topic can have multiple symbols that define it so that one topic can be used by multiple contexts. The number is optional and will be the value of the hcXXX context in the context file Once a number is assigned all following topic symbols will be assigned numbers in sequence. For example, .topic FileOpen=3, OpenFile, FFileOpen will produce the following help context number definitions, hcFileOpen = 3; hcOpenFile = 4; hcFFileOpen = 5; Cross references can be imbedded in the text of a help topic which allows the user to quickly access related topics. The format for a cross reference is as follows, {text[:alias]} The text in the brackets is highlighted by the help viewer. This text can be selected by the user and will take the user to the topic by the name of the text. Sometimes the text will not be the same as a topic symbol. In this case you can use the optional alias syntax. The symbol you wish to use is placed after the text after a ':'. The following is a paragraph of text using cross references, |The {file open dialog:FileOpen} allows you specify which |file you wish to view. If it also allow you to navigate |directories. To change to a given directory use the |{change directory dialog:ChDir}. The user can tab or use the mouse to select more information about the "file open dialog" or the "change directory dialog". The help compiler handles forward references so a topic need not be defined before it is referenced. If a topic is referenced but not defined, the compiler will give a warning but will still create a usable help file. If the undefined reference is used, a message ("No help available...") will appear in the help window. The help file is created by typing the information using any word processor and conveniently in the IDE of Turbo Pascal itself. The extended ASCII characters such as ß and Ü are entered by holding down the Alt key and entering the ASCII values such as 223 and 220 using the Numeric Keypad to the right of the keyboard, releasing the Alt key after each numeric entry. ======================================================================= Header for program TVHC.PAS -> .EXE program TVHC; {$S-} {$M 8192,8192,655360} uses Drivers, Objects, Dos, HelpFile; . . . ======================================================================= Syntax for use of the help file compiler TVHC.EXE ======================================================================= Syntax: TVHC [.TXT] [[.HLP] [[.PAS]] Help text = Help file source Help file = Compiled help file Symbol file = A Pascal file containing all the screen names as CONST's e.g. TVHC OOPHELP.TXT OOPHELP.HLP OOPHELP.PAS The [[.PAS]] is created as a Unit and must then be compiled by the normal Turbo Pascal Compiler to produce [.TPU]. must be declared in the USES statement at the start of the Turbo Vision program for which the help file has been created. Thus for the Turbo Vision program OOPTUTOR.PAS, the Uses statement includes OOPHELP, as shown below: program OOPTutor; {$X+,S-} {$M 16384,8192,655360} . . . uses Dos, Objects, Drivers, Memory, Views, Menus, Dialogs, StdDlg, MsgBox, App, DemoCmds, Gadgets, FViewer, HelpFile, OOPHELP, ColorSel, MouseDlg, Hexa, Crt; ======== ======================================================================= Extract from the help file OOPHELP.TXT ======================================================================= .topic NoContext=0 Turbo Pascal OOP Tutor and Examples Ü ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß Welcome to Turbo Pascal OOP Tutor. This program allows notes on Turbo Pascal OOP to be viewed in a scrollable window, whilst the source code for a number of examples can also be inspected. These example programs can be run as executable files (.EXE) from the tutor screen. The ð menu is accessed by pressing Alt-Space. All the other menus are accessed by pressing Alt-Z, where Z is the first letter of the menu. For example, the "Notes" menu is pulled down by Alt-N. Press ESC to put this help screen away. .topic Viewer=2 File viewer Ü ßßßßßßßßßßßß A file viewer views the contents of a text file. You can use the arrow keys to move about in the file. A file is loaded via the {File³Open:FOpen} menu item. . . . .topic RightOOP RightOOP Ü ßßßßßßßßß This program can be run by selection using the arrow keys and pressing ENTER, or else by pressing the highlighted key i. This is an example of object-oriented programming using virtual methods. . . .