Ver Fonte

+ Further implementation.

michael há 25 anos atrás
pai
commit
a143172270
1 ficheiros alterados com 375 adições e 150 exclusões
  1. 375 150
      docs/ide.tex

+ 375 - 150
docs/ide.tex

@@ -69,11 +69,14 @@ use the long filenames.
 \item [-Cfilename] This option, followed by a filename, tells the IDE to
 read its options from \file{filename}. There should be no whitespace between
 the file name and the \var{-C}.
+\item [-F] use alternative graphic characters. This can be used to run the
+IDE on \linux in an X-term or through a telnet session.
 \item [-R] After starting the IDE, it changes automatically to the directory
 which was active when the IDE exited the last time.
+\item [-S] Disable the mouse. When this option is used, then the mouse is
+disabled, even if a mouse is present.
 \end{description}
-The files given at the command line are loaded into edit
-window automatically.
+The files given at the command line are loaded into edit windows automatically.
 
 \begin{remark}
 Under DOS/Win32, a \var{/} can be used instead of \var{-} to pass a
@@ -123,7 +126,9 @@ or by pressing \key{Alt-X}.
 \section{Navigating in the IDE}
 The IDE can be navigated both with the keyboard and with a mouse, if your
 system has a mouse.
-
+%
+% Using the keyboard
+%
 \subsection{Using the keyboard} 
 All functionality of the IDE is available through use of the keyboard.
 \begin{itemize}
@@ -139,10 +144,18 @@ more information on the menu can be found in \sees{idemenu}
 combination of keys will execute a command immediatly.
 \end{itemize}
 \begin{remark}
-A complete reference of all keyboard shortcuts can be found in
+\begin{itemize}
+\item When working in a \linux X-Term or through a telnet session, the
+keycombination with \key{Alt} may not be available. To remedy this, the 
+\key{Ctrl-Z} combination can be typed first. This means that e.g. \key{Alt-X}
+can be replaced by \key{Ctrl-Z X}.
+\item A complete reference of all keyboard shortcuts can be found in
 \sees{keyshortcuts}.
+\end{itemize}
 \end{remark}
-
+% 
+% Using the mouse
+%
 \subsection{Using the mouse}
 \label{suse:mouseusage}
 If the system is equipped with a mouse, it can be used to work with the
@@ -174,6 +187,24 @@ a \windows machine.
 \end{itemize}
 \end{enumerate}
 \end{remark}
+%
+% Navigating in dialogs
+% 
+\subsection{Navigating in dialogs}
+\label{se:navigatingdialogs}
+Dialogs usually have a lot of elements in them such as buttons, edit fields,
+memo fields, list boxes and so on. To activate one of these fields, it is
+sufficient to:
+\begin{enumerate}
+\item Click on the element with the mouse.
+\item Press the \key{Tab} key till the focus reaches the mouse
+\item Press the highlighted letter in the element's label. If the focus
+is currently on an element that allows to edit, then \key{Alt} should be
+pressed simultaneously with the highlighted letter. For a button, the action
+asociated with the button will then be executed.
+\end{enumerate}
+Inside edit fields, list boxes, memos, navigation is carried out with the
+usual arrow key commands.
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % Windows
@@ -381,6 +412,8 @@ In the subsequent, all menu entries and their actions are described.
 %
 \subsection{The File menu}
 \label{se:menufile}
+The \menu{File} menu contains all menu items that allow to load and save file, as
+well as to exit the IDE.
 \begin{description}
 \item[New] Opens a new, empty editor window. 
 \item[New from template] Prompts for a template to be used, asks to fill in
@@ -400,26 +433,31 @@ IDE resumes.
 \item[Exit] (\key{ALT-X}) Exits the IDE. If any unsaved files are 
 in the editor, the IDE will ask if these files should be saved.
 \end{description}
+Under the \menu{Exit} menu appear some filenames of recently used files.
+These entries can be used to quickly reload these files in the editor.
+
 %
 % The edit menu
 %
 \subsection{The Edit menu}
 \label{se:menuedit}
+The \menu{Edit} menu contains entries for accessing the clipboard, and
+undoing or redoing editing actions. Most of these functions have shortcut
+keys associated with them.
 \begin{description}
 \item[Undo] (\key{ALT-BkSP})
 Undo the last editing action. The editing actions are stored in a buffer,
 selecting this mechanism will move backwards through this buffer, i.e.
-multiple undo levels are possible.
+multiple undo levels are possible. The selection is not preserved, though.
 \item[Redo] Redo the last action that was previously undone. Redo can redo
 multiple undone actions. 
-\item[Dump undo]
-Clears the undo buffer. After this action, the undo and redo menu will be 
-unavailable till new editing actions have taken place.
-\item[Undo all]
-Undo all actions in the undo buffer. If a new empty file was started, this
-action should clear the window contents again.
-\item[Redo all]
-Redo all editing actions that were undone.
+%\item[Dump undo]
+%Shows the contents of the UNDO list in the messages window.
+%\item[Undo all]
+%Undo all actions in the undo buffer. If a new empty file was started, this
+%action should clear the window contents again.
+%\item[Redo all]
+%Redo all editing actions that were undone.
 \item[Cut] (\key{Shift-DEL}) Copy the current selection to the clipboard
 and delete the selection from the text. Any previous clipboard contents is
 lost after this action. After this action, the clipboard contents can be 
@@ -434,11 +472,25 @@ selection.
 \item[Show clipboard] Opens a window in which the current clipboard contents
 is shown.
 \end{description}
+When running an IDE under \windows, the \menu{Edit} menu has two
+additional entries. The IDE maintains a separate clipboard which does 
+not share its contents with the windows clipboard. To access the Windows
+clipboard, the following two entries are also present:
+\begin{description}
+\item[Copy to Windows] this will copy the selection to the Windows
+clipboard. 
+\item[Paster from windows] this will insert the content of the windows
+clipboard (if it contains text) in the edit window at the current cursor
+position.
+\end{description}
+
 %
 % The Search menu
 %
 \subsection{The Search menu}
 \label{se:menusearch}
+The \menu{Search} menu provides acces to the search and replace dialogs, as well as
+access to the symbol browser of the IDE. 
 \begin{description}
 \item[Find] (\key{Ctrl-Q F}) presents the search dialog. A search text 
 can be entered, and when the dialog is closed, the entered text is searched
@@ -450,16 +502,21 @@ text in the active window.
  using  the same parameters.
 \item[Go to line number] (\key{Alt-G}) prompts for a line number, and
 then jumps to this line number.
+\end{description}
+When the program and units are compiled with browse information, then
+the following menu entries are also enabled:
+\begin{description}
 \item[Find procedure]
 Not yet implemented.
 \item[Objects]
-Not yet implemented.
+Asks for the name of an object and opens a browse window for this object.
 \item[Modules]
-Not yet implemented.
+Asks for the name of a module and opens a browse window for this object.
 \item[Globals]
-Not yet implemented.
+Asks for the name of a global symbol and opens a browse window for this object.
 \item[Symbol]
-Not yet implemented.
+Opens a window with all known symbols, so a symbol can be selected. After
+the symbol is selected, a browse window for that symbol is opened.
 \end{description}
 %
 % The Run menu
@@ -467,7 +524,6 @@ Not yet implemented.
 \subsection{The Run menu}
 \label{se:menurun}
 The \menu{Run} menu contains all entries related to running a program,
-
 \begin{description}
 \item[Run] (\key{Ctrl-F9})
 If the sources were modified, compile the program. If the compile is
@@ -496,7 +552,7 @@ debugged, the debug session is aborted, and the running program is killed.
 %
 \subsection{The Compile menu}
 \label{se:menucompile}
-The Compile menu contains all entries related to compiling a program or
+The \menu{Compile} menu contains all entries related to compiling a program or
 unit.
 \begin{description}
 \item[Compile] (\key{Alt-F9}) Compiles the contents of the active window,
@@ -526,6 +582,8 @@ during the last compile.
 %
 \subsection{The Debug menu}
 \label{se:menudebug}
+The \menu{Debug} menu contains menu entries to aid in debugging a program, such as
+setting breakpoints and watches. 
 \begin{description}
 \item[Output]
 \item[User screen] (\key{Alt-F5}) switches to the screen as it was last
@@ -555,6 +613,8 @@ directly.
 %
 \subsection{The Tools menu}
 \label{se:menutools}
+The \menu{Tools} menu defines some standard tools. If new tools are defined by the
+user, they are appended to this menu as well.
 \begin{description}
 \item[Messages] (\key{F11}) Show the messages window. 
 This window contains the output from one of the tools. For more information,
@@ -572,10 +632,12 @@ Displays the calculator. For more information, see \sees{calculator}
 \sees{asciitable}
 \end{description}
 %
-% The Search menu
+% The Options menu
 %
 \subsection{The Options menu}
 \label{se:menuoptions}
+The \menu{Options} menu is the entry point for all dialogs that are used to set
+options for compiler and IDE, as well as the user preferences.
 \begin{description}
 \item[Mode] Presents a dialog to set the current mode of the compiler. The
 current mode is shown at the right of the menu entry. For more information,
@@ -636,12 +698,14 @@ Save the current options in the default file.
 Saves the current options in an alternate file. A file selection dialog box
 will be presented in which the alternate settings file can be entered.
 \end{description}
+Please note that options are not saved automatically, they should be saved
+explicitly with the \menu{Options|Save} command.
 %
 % The window menu
 %
 \subsection{The Window menu}
 \label{se:menuwindow}
-The Window menu provides access to some window functions. More information
+The \menu{Window} menu provides access to some window functions. More information
 on all these functions can be found in \sees{windows}
 \begin{description}
 \item[Tile]
@@ -672,6 +736,8 @@ Redraws the screen.
 %
 \subsection{The Help menu}
 \label{se:menuhelp}
+The \menu{Help} menu provides entry points to all the help functionality of
+the IDE, as well as the entry to customize the help system.
 \begin{description}
 \item[Contents]
 Shows the help table of contents
@@ -685,56 +751,11 @@ Jumps to the previously visited topic.
 Displays help on using the help system.
 \item[Files]
 Allows to configure the help menu. Here help files can be added to the help
-system.
+system. 
 \item[About]
 Displays information about the IDE. See \sees{about} for more information.
 \end{description}
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% The help system
-\section{The help system}
-More information on how to handle the IDE, or about the use of various
-calls in the RTL, explanations regarding the syntax of a pascal statement,
-can be found in the \emph{help system}. The help system is activated
- by pressing F1.
-
-\subsection{Navigating in the help system}
-The help system contains hyperlinks which can be accessed by clicking
-them with the mouse. Alternativly, \key{Tab} and \key{Shift-Tab}
-can be used to move between the different hyperlinks of a page
-and the \key{Enter} key can be used to select them.
-
-The contents of the help system is displayed, if \key{Shift-F1} is
-pressed. To go back to the last help topic, \key{press Alt-F1}. 
-This also works if the help window isn't displayed on the desktop.
-
-\subsection{Working with help files}
-The IDE contains a help system which can display HTML files
-as well as the TPH format known from \tp. The HTML viewer of the 
-help system is limited, it can only handle the most basic HTML files 
-not including graphics, since it is only designed to display the \fpc help 
-files \footnote{...but feel free to improve it and send patches to the 
-\fpc development team...}.
-
-The menu item \menu{Help|Files} permits you to add and delete
-help files.
-
-A new file can be added with the \emph{new} button. The IDE will display
-a prompt, in which the location of the help file should be entered.
-If it is an HTML file, a dialog box will be displayed
-which asks for a title. This title will then be included in the
-contents of help.
-
-A help file can be deleted from the help system (it is \emph{not} deleted 
-from the hard disk) using the \emph{delete} button.
-
-\subsection{The about dialog}
-\label{se:about}
-The \emph{about dialog} (\menu{Help|About...}) shows some information
-about the IDE, such as the version number, the date it was built, what
-compiler and debugger it uses. When reporting bugs about the IDE, please 
-It also contains copyright information.
-
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % Editing text
 \section{Editing text}
@@ -864,7 +885,7 @@ The list of keywords that can be completed can be maintained here.
 The code completion dialog.
 \htmladdimg{../pics/ide/codecomp.png}
 \end{htmlonly}
-\begin{latexonly}
+[A\begin{latexonly}
 The code completion dialog is shown in \seefig{codecomp}.
 \begin{figure}[ht]
 \caption{The code completion dialog.}\label{fig:codecomp}
@@ -997,7 +1018,9 @@ the search text will be replaced.
 If the dialog is closed with the 'Change All' button, all occurrences of 
 the search text will be replaced.
 
-\subsection{The symbol browser}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The symbol browser
+\section{The symbol browser}
 \label{se:browser}
 The symbol browser allows to find all occurrences of a symbol. A symbol 
 can be a variable, type, procedure or constant that occurs in your program.
@@ -1296,12 +1319,12 @@ the final reference is of course the GDB manual itself.
 
 \begin{htmlonly}
 The GDB window looks as follows:
-\htmladdimg{../pics/ide/watch.png}
+\htmladdimg{../pics/ide/gdbwin.png}
 \end{htmlonly}
 \begin{latexonly}
 The GDB window is shown in \seefig{gdbwin}.
 \begin{figure}[ht]
-\caption{The call stack window.}\label{fig:gdbwin}
+\caption{The GDB window.}\label{fig:gdbwin}
 \ifpdf
 \epsfig{file=pics/ide/gdbwin.png,width=\textwidth}
 \else
@@ -1310,85 +1333,199 @@ The GDB window is shown in \seefig{gdbwin}.
 \end{figure}
 \end{latexonly}
 
-
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % The tools menu
-\section{The tools menu}
+\section{The Tools menu}
 \label{se:toolsmenu}
-The tools menu provideseasy access to external tools. Further,
-it contains two other probaly helpful tools for programmers: an
-ascii table and a calculator.
+The tools menu provides easy access to external tools. It also has
+three pre-defined tools for programmers: an ASCII table,  a grep tool
+and a calculator. The output of the external tools can be accessed through
+this menu as well.
 
+%
+% The messages window.
+%
 \subsection{The messages window}
 \label{se:toolsmessages}
 The output of the external utilies is redirected by the IDE and it
 will be displayed in the message window. The message window is
 displayed automatically, if an external tool was run. The
-messages window can be also display manual by the selecting the
-menu item \var{Tools|Messages} or by pressing the key \key{F11}.
-
-If the output of the tools contains filenames and line numbers,
-you can goto the source line by pressing \key{Enter} or
-double clicking the output line. To trace the source, press
-\key{Space}. The difference between goto and tracking is that
-goto closes the message window while tracking keeps the message
-window active and the source file is displayed only in the background.
+messages window can be also displayed manually by the selecting the
+menu item \menu{Tools|Messages} or by pressing the key \key{F11}.
 
+\begin{htmlonly}
+The messages window looks as follows:
+\htmladdimg{../pics/ide/messages.png}
+\end{htmlonly}
+\begin{latexonly}
+The messages window is shown in \seefig{messages}.
+\begin{figure}[ht]
+\caption{The messages window.}\label{fig:messages}
+\ifpdf
+\epsfig{file=pics/ide/messages.png,width=\textwidth}
+\else
+\epsfig{file=pics/ide/messages.eps,width=\textwidth}
+\fi
+\end{figure}
+\end{latexonly}
+If the output of the tool contains filenames and line numbers,
+the messages window can be used to navigate the source as in a browse
+window:
+\begin{enumerate}
+\item Pressing \key{Enter} or double clicking the output line will jump
+to the specified source line and close the messages window.
+\item Pressing the space bar will jump to the specified source line, but
+will leave the messages window open, with the focus on it. This allows to
+quickly select another message line with the arrow keys and jump to 
+another location in the sources.
+\end{enumerate}
 The algorithm which extracts the file names and line numbers from
 the tool output is quite sophisticated, but in some cases it may
-fail. In this case, please refer the sources of the IDE.
-
-\subsection{GREP}
+fail\footnote{Suggestions for improvement, or better yet, patches
+that improve the algorithm, are always welcome.}.
+%
+% Grep
+%
+\subsection{Grep}
 \label{se:grep}
-One external tool in the Tools menu is already predefined: an
-menu item to call the \file{grep} utility (\var{Tools|Grep} or
-\key{Shift-F2}). \file{grep} search for a given string in files and
+One external tool in the Tools menu is already predefined: a
+menu item to call the \file{grep} utility (\menu{Tools|Grep} or
+\key{Shift-F2}). \file{Grep} searches for a given string in files and
 returns the lines which contain the string. The search string can
-be even a regular expression (see \sees{regexpr}).
+be even a regular expression. For this menu item to work, the
+\file{grep} program must be installed, since it does not come with \fpc.
+
+The messages window displayed in \seefig{messages} in the previous 
+section shows the output of a typical \file{grep} session. The messages
+window can be used in combination with \file{grep} to find special
+occurrences in the text.
+
+\file{Grep} supports regular expressions. A regular expression is a 
+string with sepcial characters which describe a whole class of 
+expressions. The command line in \dos or \linux have limited 
+support for regular expressions: enteringa \var{ls *.pas} 
+(or \var{dir *.pas}) to get a list of all pascal files in a
+directory. \file{*.pas} is something similiar to regular expression. 
+It uses a wildcard to describe a whole class of strings: these which 
+end with "\file{.pas}". 
+Regular expressions offer much more: for example \var{[A-Z][0-9]+} 
+describes all strings which begin with a upper case letter followed by
+one or more digits.
 
-\subsection{The ascii table}
+It is outside the scope of this manual to describe regular expressions
+in great detail. Users of a \linux system can get more information on grep
+using \var{man grep} on the command-line.
+%
+% The ascii table.
+%
+\subsection{The ASCII table}
 \label{se:asciitable}
-The tools menu provides also an ascii table (\var{Tools|Ascii table},
-it allows you to lookup ascii codes as well as
-inserting chars into the window which was active when calling the
-ascii chart. To get the ascii code of a char move the blocking block
-cursor on this char or click with the mouse on it. To insert a
-char into an editor window, double click it with the mouse
-or press \key{Enter} while the cursor is on it.
+The tools menu provides also an ASCII table (\menu{Tools|Ascii table}),
+The ascii table can be used to look up ASCII codes as well as
+inserting characters into the window which was active when invoking the
+table. To get the ASCII code of a char move the cursor on this char 
+or click with the mouse on it. To insert a
+char into an editor window either:
+\begin{enumerate}
+\item using the mouse, double click it,
+\item using the keyboard,  press \key{Enter} while the cursor is on it.
+\end{enumerate}
+This is especially useful for pasting graphical characters in a constant
+string.
+
+The ASCII table remains active till another window is explicitly activated,
+thus mulptiple characters can be inserted at once.
+\begin{htmlonly}
+The ASCII table looks as follows:
+\htmladdimg{../pics/ide/ascii.png}
+\end{htmlonly}
+\begin{latexonly}
+The ASCII table is shown in \seefig{asciitable}.
+\begin{figure}[ht]
+\caption{The ASCII table.}\label{fig:asciitable}
+\ifpdf
+\epsfig{file=pics/ide/ascii.png}
+\else
+\epsfig{file=pics/ide/ascii.eps}
+\fi
+\end{figure}
+\end{latexonly}
 
+%
+% The calculator
+%
 \subsection{The calculator}
 \label{se:calculator}
-The calculator allows you to do quickly some calculations. It doesn't
-take care of operator precedence, so be careful. For more information
-about the supported operations, see table \seet{calculatorcommands}.
+The calculator allows to do some quick calculations. It is a simple
+calculator, since it does not take care of operator precedence, and
+bracketing of operations is not (yet) supported.
 
-\begin{FPCltable}{p{5cm}lll}{Calculator commands}{calculatorcommands}
-Operation & Button & Key \\
-\hline
+The result of the calculations can not yet be
+pasted into the text, hopefully some future version of the IDE will support
+pasting the result into the text.
+
+\begin{htmlonly}
+The calculator dialog looks as follows:
+\htmladdimg{../pics/ide/calc.png}
+\end{htmlonly}
+\begin{latexonly}
+The calculator dialog is shown in \seefig{calculator}.
+\begin{figure}[ht]
+\caption{The calculator dialog.}\label{fig:calculator}
+\ifpdf
+\epsfig{file=pics/ide/calc.png}
+\else
+\epsfig{file=pics/ide/calc.eps}
+\fi
+\end{figure}
+\end{latexonly}
+The calculator supports all basic mathematical operations such as
+addition, substraction, division and multiplication. They are summarized in
+\seet{calculatorbasic}.
+\begin{FPCltable}{p{8cm}lll}{Advanced calculator commands}{calculatorbasic}
+Operation & Button & Key \\ \hline
 Add two numbers & \var{+} & \key{+} \\
 Subtract two numbers & \var{\-} & \key{\-} \\
 Multiply two numbers & \var{*} & \key{*} \\
 Divide two numbers & \var{/} & \key{/} \\
+Delete the last typed digit & \var{<-} & \key{Backspace} \\
+Delete the display & \var{C} & \key{C} \\
+Change the sign & \var{+\-} & \\
+Do per cent calculation & \var{\%} & \key{\%} \\ \hline
+Get result of operation & \var{=} & \key{Enter} \\ \hline
+\end{FPCltable}
+
+But also more sophisticated mathematical operations such as exponentiation
+and logarithms are supported. The available mathematical calculations are
+shown in \seet{calculatoradvanced}.
+\begin{FPCltable}{p{8cm}lll}{Advanced calculator commands}{calculatoradvanced}
+Operation & Button & Key \\ \hline
 Calculate power & \var{x\^y} & \\
-Add the displayed number to the memory & \var{M+} & \\
-Subtract the displayed number from the memory & \var{M-} & \\
-Move the memory contents to the display & \var{M->} & \\
-Move the display contents to the memory & \var{M<-} & \\
-Exchange display and memory contents & \var{M<->} & \\
-Square the display contents & \var{x\^2} & \\
 Calculate the reciproke value & \var{1/x} & \\
 Calculate the square root & \var{sqr} & \\
 Calulate the natural logarithm &  \var{log} & \\
-Delete the last typed digit & \var{<-} & \key{Backspace} \\
-Delete the display & \var{C} & \key{C} \\
-Change the sign & \var{+\-} & \\
-Get result of operation & \var{=} & \key{Enter} \\
-Do per cent calculation & \var{\%} & \key{\%}
+Square the display contents & \var{x\^2} & \\ \hline.
 \end{FPCltable}
 
+Like many calculators, the calculator in the IDE also supports storing
+a single value in memory, and several operations can be done on this memory
+value. The available operations are listed in \seet{calculatormemory}
+\begin{FPCltable}{p{8cm}lll}{Advanced calculator commands}{calculatormemory}
+Operation & Button & Key \\ \hline
+Add the displayed number to the memory & \var{M+} & \\
+Subtract the displayed number from the memory & \var{M-} & \\
+Move the memory contents to the display & \var{M->} & \\
+Move the display contents to the memory & \var{M<-} & \\
+Exchange display and memory contents & \var{M<->} & \\ \hline
+\end{FPCltable}
+%
+% Adding new tools
+%
 \subsection{Adding new tools}
 \label{se:addingtools}
-%%%!!!!!!!!!!!!!!
+The tools menu can be extended with any external program which is command-line
+oriented. The output of such a program will be caught and displayed in the 
+messages window.
 
 \subsection{Meta parameters}
 When specifing the command line for the called tool, meta parameters can
@@ -1412,13 +1549,13 @@ by it's contents before passing the command line to the tool.
 \item[\$NAMEEXT]
 \item[\$NOSWAP]
 \item[\$DRIVE]
-\item[\$PROMPT]
-\item[\$SAVE]
+\item[\$PROMPT] prompt for a program argument.
+\item[\$SAVE] 
 \item[\$SAVE\_ALL]
 \item[\$SAVE\_CUR]
 \item[\$SAVE\_PROMPT]
 \item[\$WRITEMSG]
-\end{description}
+\end{description}	
 
 \subsection{Building your own tool command line dialog box}
 %%%!!!!!!!!!!!!!!
@@ -1547,38 +1684,118 @@ by the browser
 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Trouble shooting
-\section{Trouble shooting}
-%%%!!!!!!!!!!!!!!
+% The help system
+\section{The help system}
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Regular expressions
-\section{Regular expressions}
-\label{se:regexpr}
-A regular expression is a string with sepcial characters which describes 
-a whole class of expressions. You may know this from the command line
-where can enter a \file{ls *.pas} (or \file{dir *.pas}) to get a list
-of all pascal files in a directory. \file{*.pas} is something 
-similiar to regular expression. It uses a wildcard to describe a whole 
-class of strings: these which end with "\file{.pas}". The possibilty 
-of the wildcards in the command line are especially on DOS very limited. 
-Regular expressions offer much more: for example \file{[A-Z][0-9]+} 
-describes all strings which begin with a upper case letter followed by
-one or more digits (you'll understand this regular expression later).
+More information on how to handle the IDE, or about the use of various
+calls in the RTL, explanations regarding the syntax of a pascal statement,
+can be found in the \emph{help system}. The help system is activated
+by pressing \key{F1}.
+
+\subsection{Navigating in the help system}
+The help system contains hyperlinks; these are sensitive locations that
+lead to another topic in the help system. They are marked by a different
+color. The hyperlinks can be activated in 2 ways:
+\begin{enumerate}
+\item by clicking them with the mouse,
+\item by using the \key{Tab} and \key{Shift-Tab} keys to move between 
+the different hyperlinks of a page and the \key{Enter} key can be used 
+to activate them.
+\end{enumerate}
+
+The contents of the help system is displayed, if \key{Shift-F1} is
+pressed. To go back to the previous help topic, press \key{Alt-F1}. 
+This also works if the help window isn't displayed on the desktop; the help
+window will then be activated.
+
+%
+% Working with help files.
+%
+\subsection{Working with help files}
+The IDE contains a help system which can display the following file formats:
+\begin{description}
+\item[TPH] The help format for the Turbo Pascal help viewer.
+\item[INF] The OS/2 help format.
+\item[NG] The NGHelp format.
+\item[HTML] HTML files. 
+The HTML viewer of the  help system is limited, it can only handle the 
+most basic HTML files not including graphics, since it is only designed 
+to display the \fpc help files \footnote{...but feel free to improve it and send patches to the 
+\fpc development team...}.
+\end{description}
+The menu item \menu{Help|Files} permits you to add and delete
+help files.
+\begin{htmlonly}
+The Help files dialog looks as follows:
+\htmladdimg{../pics/ide/helpfils.png}
+\end{htmlonly}
+\begin{latexonly}
+The help files dialog is displayed in \seefig{helpfiles}.
+\begin{figure}[ht]
+\caption{The help files dialog.}\label{fig:helpfiles}
+\ifpdf
+\epsfig{file=pics/ide/helpfils.png,width=\textwidth}
+\else
+\epsfig{file=pics/ide/helpfils.eps,width=\textwidth}
+\fi
+\end{figure}
+\end{latexonly}
+The dialogs lists the files that will be presented in thetable of contents
+window of the help system. Each entry has a small descriptive title and a
+filename next to it. The following actions are available when adding help
+files:
+\begin{description}
+\item[New] Adds a new file. IDE will display a prompt, in which the 
+location of the help file should be entered. 
+
+If the added file is an HTML file, a dialog box will be displayed
+which asks for a title. This title will then be included in the
+contents of help.
+\item[Delete] Deletes the currently highlighted file from the help system.
+It is \emph{not} deleted from the hard disk, only the help system entry is
+removed.
+\item[Cancel] Discards all changes and closes the dialog.
+\item[OK] Saves the changes and closes the dialog.
+\end{description}
+
+The \fpc documentation in HTML format can be added to the IDE's help system,
+this way the documentation can be viewed from within the IDE.
+
+%
+% The about dialog.
+%
+\subsection{The about dialog}
+\label{se:about}
+The \emph{about dialog} (\menu{Help|About...}) shows some information
+about the IDE, such as the version number, the date it was built, what
+compiler and debugger it uses. When reporting bugs about the IDE, please 
+It also contains copyright information.
 
-%%%!!!!!!!!!!
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % Keyboard shortcuts
 \section{Keyboard shortcuts}
 \label{se:keyshortcuts}
-
 A lot of keyboard shortcuts used by the IDE are compatible with 
 WordStar and should be well known to Turbo Pascal users.
 
+Below are the following tables:
+\begin{enumerate}
+\item In \seet{shortcutsgeneral} some shortcuts for handling the IDE windows
+and Help are listed.
+\item In \seet{shortcutscompiler} the shortcuts for compiling, running and
+debugging a program are presented.
+\item In \seet{shortcutsnavigation} the navigation keys are described.
+\item In \seet{shortcutsedit} the editing keys are listed.
+\item In \seet{shortcutsblock} lists all block command shortcuts.
+\item In \seet{shortcutsselection} all selection-changing shortcuts are 
+presented.
+\item In \seet{shortcutsmisc} some general shortcuts are presented, 
+which do not fit in the previous categories.
+\end{enumerate}
+
 \begin{FPCltable}{p{5cm}ll}{General}{shortcutsgeneral}
-Command & Key shortcut & Alternative \\
-\hline
+Command & Key shortcut & Alternative \\ \hline
 Help & \key{F1} & \\
 Goto last help topic & \key{Alt-F1} & \\
 Search word at cursor position in help & \key{Ctrl-F1} & \\
@@ -1592,9 +1809,10 @@ Menu & \key{F10} & \\
 Local menu & \key{Alt-F10} & \\
 List of windows & \key{Alt-0} & \\
 Active another window & \key{Alt-<digit>} & \\
-Call \var{GREP} utility & \key{Shift-F2} & \\
+Call \file{grep} utility & \key{Shift-F2} & \\
 Exit IDE & \key{Alt-X} & \\
 \end{FPCltable}
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \begin{FPCltable}{p{5cm}ll}{Compiler}{shortcutscompiler}
 Command & Key shortcut & Alternative \\
@@ -1613,8 +1831,9 @@ Compile the active source file & \key{Alt-F9} & \\
 Message & \key{F11} & \\
 Compiler messages & \key{F12} & \\
 \end{FPCltable}
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\begin{FPCltable}{p{5cm}ll}{Text navigation}{shortcutstextnavigation}
+\begin{FPCltable}{p{5cm}ll}{Text navigation}{shortcutsnavigation}
 Command & Key shortcut & Alternative \\
 \hline
 Char left & \key{Arrow left} & \key{Ctrl-S} \\
@@ -1647,8 +1866,9 @@ Delete word & \key{Ctrl-T} & \\
 Insert line & \key{Ctrl-N} & \\
 Toggle insert mode & \key{Insert} & \key{Ctrl-V} \\
 \end{FPCltable}
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\begin{FPCltable}{p{5cm}ll}{Block commands}{shortcutsblockcommands}
+\begin{FPCltable}{p{5cm}ll}{Block commands}{shortcutsblock}
 Command & Key shortcut & Alternative \\
 \hline
 Goto Beginning of selected text & \key{Ctrl-Q-B} & \\
@@ -1667,13 +1887,14 @@ Insert text from clipboard & \key{Shift-Insert} & \\
 Insert file & \key{Ctrl-K-R} & \\
 Write selected text to file & \key{Ctrl-K-W} & \\
 \end{FPCltable}
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\begin{FPCltable}{p{5cm}ll}{Change selection}{changeselection}
+\begin{FPCltable}{p{5cm}ll}{Change selection}{shortcutsselection}
 Command & Key shortcut & Alternative \\
 \hline
 Mark beginning of selected text & \key{Ctrl-K-B} & \\
 Mark end of selected text& \key{Ctrl-K-K} & \\
-Remove selection & \key{Ctrl-K-H} & \\
+Remove selection & \key{Ctrl-K-Y} & \\
 Extend selection one char to the left & \key{Shift-Arrow left} & \\
 Extend selection one char to the right & \key{Shift-Arrow right} & \\
 Extend selection to the beginning of the line & \key{Shift-Pos1} & \\
@@ -1690,8 +1911,9 @@ Extend selection to the beginning of the file & \key{Ctrl-Shift-Pos1} &
 Extend selection to the end of the file & \key{Ctrl-Shift-End} &
 \key{Ctrl-Shift-PageUp} \\
 \end{FPCltable}
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\begin{FPCltable}{p{5cm}ll}{Misc. commands}{shortcutsmisccommands}
+\begin{FPCltable}{p{5cm}ll}{Misc. commands}{shortcutsmisc}
 Command & Key shortcut & Alternative \\
 \hline
 Save file & \key{F2} & \key{Ctrl-K-S} \\
@@ -1705,7 +1927,10 @@ Undo & \key{Alt-Backspace} & \\
 \end{FPCltable}
 %
 %  $Log$
-%  Revision 1.1.2.6  2000-11-18 00:06:11  michael
+%  Revision 1.1.2.7  2000-11-19 23:08:32  michael
+%  + Further implementation.
+%
+%  Revision 1.1.2.6  2000/11/18 00:06:11  michael
 %  + Added code templates
 %  + Added syntax highlighting
 %  + Added codecompletion