FAQ

Here you can find answers to common questions:

 FAQ for Pascal Analyzer

1. What is Pascal Analyzer and how can it make my developer life easier?
2. I'm a registered user, where can I find updated versions of the full program?
3. Which compiler versions are supported by Pascal Analyzer?
4. Is it necessary to change my source code in order to let Pascal Analyzer do its work?
5. How can I jump from an error location in a Pascal Analyzer report to my source code?
6. How can I hide source code from Pascal Analyzer?
7. How can I exclude results from code in certain folders?
8. Where can I find the cyclomatic complexity metrics for my code?
9. How can I detect assigned value parameters?
10. Can PAL tell me if I have declared an identifier with the same name as a built-in identifier?
11. When adding a virtual abstract method to a base class, can PAL help me find all places where I need to override this method?
12. Results are often presented as lists of identifiers, sorted by name. Can I change this so that the lists are displayed sorted by module name, and secondly by identifier name?
13. Is it possible to generate a list of global variables?
14. For a given function or procedure, is it possible to see a list of all called other functions or procedures?
15. How can I create a template for new projects, so I do not have to enter the same settings again and again?
16. Can I intregrate PAL with our build process?

 FAQ for Pascal Browser

1. What is Pascal Browser and how can it make my developer life easier?
2. I'm a registered user, where can I find updated versions of the full program?
3. Which compiler versions are supported by Pascal Browser?
4. Is it necessary to change my source code in order to let Pascal Browser do its work?
5. How can I make my Chinese comments show up correctly in the HTML pages?

 FAQ for Easy To-Do

1. What are the differences between Easy To-Do Lite and Easy To-Do Pro?
2. I'm a registered user, where can I find updated versions of the full program?
3. How can I create task hierarchies?
4. I've got Easy To-Do 1.5, how can I upgrade?
5. Cannot print, the Preview button is grayed out.
6. How can I view my archived tasks?
7. What are the flag fields used for?

Pascal Analyzer

1. What is Pascal Analyzer and how can it make my developer life easier?

Pascal Analyzer is a powerful and efficient source code analysis tool. It will help you find all sorts of bugs, errors, and anomalies.

Pascal Analyzer supports your development process by:

  • finding errors in the source code, and help you avoid creating new ones
  • assist you in understanding your source code, both if you have written it yourself or inherited it from another developer
  • help you structure your code so it will become easier to maintain and enhance

2. I'm a registered user, where can I find updated versions of the full program?

Read the mail you got when you ordered Pascal Analyzer. The same instructions apply for updates. If you cannot find this mail, let us know, and we will help you as soon as we can.

3. Which versions are supported by Pascal Analyzer?

Pascal Analyzer directly supports code written for the following compilers:

  • Borland Pascal 7 (or earlier)
  • Delphi 1
  • Delphi 2
  • Delphi 3
  • Delphi 4
  • Delphi 5
  • Delphi 6
  • Delphi 7
  • Delphi 8 for .NET
  • Delphi 2005 for Win32
  • Delphi 2005 for .NET
  • Delphi 2006 for Win32 (also Turbo Delphi for Win32)
  • Delphi 2006 for .NET (also Turbo Delphi for .NET)
  • Delphi 2007 for Win32
  • Delphi 2007 for .NET
  • Delphi 2009 for Win32
  • Delphi 2010 for Win32
  • Delphi XE for Win32

By setting appropriate compiler directives and conditional defines, PAL should also handle code written for Kylix (Delphi for Linux), and for other Pascal dialects.

4. Is it necessary to change my source code in order to let Pascal Analyzer do its work?

No, not at all. Just make sure that you select a suitable compiler target. Also set any appropriate compiler directives and conditional defines, just as you would when compiling from within the IDE. Or use an include file with compiler directives and conditíonal defines.

Be aware, that if you check the option "Use Delphi project options if found", the conditional defines that may be set in the options will also be used, and merged with the conditional defines that you set in the project options.

5. How can I jump from an error location in a Pascal Analyzer report to my source code?

There are two ways:

  • Under "Options|Preferences", select the "Source code" tab page and select "The source file is opened and focused in a source code viewer". When doubleclicking on a line in a report, a source code pane is opened and the corresponding line will be focused. This option will not allow you to edit the source code, just view it.

  • Under "Options|Preferences", select the "Source code" tab page and select "The source file is opened and focused in the Delphi IDE". Also select which Delphi IDEs you want to interact with, and press the "Update registry" button. When doubleclicking on a line in a report, the corresponding source code file is opened in the Delphi IDE and the line is focused. This assumes that you have Delphi running. In this way you can make modifications to the source code.

6. How can I hide source code from Pascal Analyzer?

My project involves a lot of source code. I have no interest in finding errors in the VCL or in some third-party libraries. What is the best way to avoid parsing and analyzing this code?

First, uncheck the "Use Delphi library path" and "Use Delphi browsing path" options in the "Project Options" dialog box. Then only include the folders that you want PAL to find in the "Search folders" text box.

7. How can I exclude results from code in certain folders?

I do not want to present results for code in some folders. What can I do?

Use the "Exclude identifiers from these folders in reports" option in the "Project Options" dialog box. It can sometimes be desirable to let Pascal Analyzer find and parse all code, so it can get a better understanding. But in this way, you can exclude results from these folders.

8. Where can I find the cyclomatic complexity metrics for my code?

Cyclomatic complexity is a measure of software complexity first introduced by McCabe. It measures the number of linearly-independent paths through a program module. PAL does not directly display cyclomatic complexity metrics. However, the Complexity Report displays decision points (DP). Cyclomatic complexity is often defined as the number of DPs plus one, so there is a direct relation between these two metrics.

9. How can I detect assigned value parameters?

For example, code like this:

procedure MyProc(I : integer);
begin
...
  I := 555; // I is not passed as reference
...
end;

In the "Warnings Report", this is reported in the section "Value parameters that are set".

10. Can PAL tell me if I have declared an identifier with the same name as a built-in identifier?

Yes, the "Convention Report" reports this in the section "Identifiers that have unsuitable names". It lists identifiers that share the same name as keywords, directives, or identifiers from the System unit. Example: Absolute, Round, IntToStr

11. When adding a virtual abstract method to a base class, can PAL help me find all places where I need to override this method?

Yes, the "Warnings Report" reports this in the section "Classes without override of abstract methods". It is important to override these methods, otherwise you could get an exception at runtime.

12. Results are often presented as lists of identifiers, sorted by name. Can I change this so that the lists are displayed sorted by module name, and secondly by identifier name?

Sure, you find this in the Project Options dialog box, in the lower part of the "General" tab page.

13. Is it possible to generate a list of global variables?

The "Identifiers Report" has a section called "Global Variables", which provides exactly this.

14. For a given function or procedure, is it possible to see a list of all called other functions or procedures?

Use the "Call Index Report" for this.

15. How can I create a template for new projects, so I do not have to enter the same settings again and again?

Set options for a new project, that you want to keep as a template. Then select "Options|Set as Template" from the menu and the options will be used for the new projects that you create.

16. Can I intregrate PAL with our build process?

Yes, you can. Take a look at the command-line program PALCMD.EXE. It has a whole set of options that will let you run a PAL analysis automatically.

Pascal Browser

1. What is Pascal Browser and how can it make my developer life easier?

Pascal Browser is a powerful and efficient source code documentation tool.

Just as its sibling product Pascal Analyzer, Pascal Browser will parse the source code it finds and gather all sorts of information. This information is used to create the document collection that describes the source code. The most common use of Pascal Browser will probably be to create hyperlinked HTML documents.

2. I'm a registered user, where can I find updated versions of the full program?

Read the mail you got when you ordered Pascal Browser. The same instructions apply for updates. If you cannot find this mail, let us know, and we will help you as soon as we can.

3. Which versions are supported by Pascal Browser?

Pascal Browser directly supports code written for the following compilers:

  • Borland Pascal 7 (or earlier)
  • Delphi 1
  • Delphi 2
  • Delphi 3
  • Delphi 4
  • Delphi 5
  • Delphi 6
  • Delphi 7
  • Delphi 8 for .NET
  • Delphi 2005 for Win32
  • Delphi 2005 for .NET
  • Delphi 2006 for Win32 (also Turbo Delphi for Win32)
  • Delphi 2006 for .NET (also Turbo Delphi for .NET)
  • Delphi 2007 for Win32
  • Delphi 2007 for .NET
  • Delphi 2009 for Win32
  • Delphi 2010 for Win32
  • Delphi XE for Win32

By setting appropriate compiler directives and conditional defines, PAL should also handle code written for Kylix (Delphi for Linux), and for other Pascal dialects.

4. Is it necessary to change my source code in order to let Pascal Browser do its work?

No, not at all. Just make sure that you select a suitable compiler target. Also set any appropriate compiler directives and conditional defines, just as you would when compiling from within the IDE. Or use an include file with compiler directives and conditíonal defines.

Be aware, that if you check the option "Use Delphi project options if found", the conditional defines that may be set in the options will also be used, and merged with the conditional defines that you set in the project options.

4. How can I make my Chinese comments show up correctly in the HTML pages when using charset "Big5"?

When Unicode comments are used in the source code, the default templates will not generate the correct output. The output in source code listings will display Unicode characters, but not in the other parts of the document that show comments.

The comments are written by PAB to the intermediate XML file, and the charset used is "iso-8859-1", and the XSLT transformation inserts a <META> tag in the resulting HTML pages that specifies "charset=iso-8859-1". The solution is to add an additional <META> tag that specifies for example the charset "Big5" (a charset for Chinese characters) in the templates, like this for Module.xsl:  

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:variable name="template">{#Template}</xsl:variable>

<xsl:include href="FooterInc.xsl"/>
<xsl:include href="HeaderInc.xsl"/>
<xsl:include href="ToolsInc.xsl"/>
<xsl:include href="TodoInc.xsl"/>
<xsl:include href="ImageInc.xsl"/>

<xsl:output method="html" version="1.0" encoding="iso-8859-1" indent="yes"/>

<xsl:template match="/">
<xsl:variable name="Me" select="//Items/Item[@id='{#selfID}']"/>
<xsl:variable name="ItemsInMe" select="//Items/Item[@modid='{#selfID}']"/>
<HTML>
<META http-equiv="Content-Type" content="text/html; charset=Big5"/>
<xsl:call-template name="header"/>
<BODY>
...

This <META> tag will take precedence, so the resulting output is displayed with the "Big5" charset.

Easy To-Do

1. What are the differences between Easy To-Do Lite and Easy To-Do Pro?

This table describes the differences:

Feature ET Lite ET Pro
Price FREE $29
Number of tasks max 200 no limit
Number of active tasks max 50 no limit
Print To-Do list No Yes
Add your own Priorities No Yes
Add your own Status No Yes
Create parent-child tasks No Yes
Use tamplates for recurring tasks No Yes

The databases used by the different versions are fully compatible with each other. This means that it is possible to, for example, start using the Lite version, and then change to the Professional version, keeping your tasks unchanged.

2. I'm a registered user, where can I find updated versions of the full program?

Read the mail you got when you ordered Easy To-Do. The same instructions apply for updates. If you cannot find this mail, let us know, and we will help you as soon as we can.

3. How can I create task hierarchies?

Press Ctrl and select the child task with the left mouse button pressed. Then drag it, while pressing the left mouse button and drop it on the parent task. You can in this way create hierarchies of tasks in two or more levels. To release a child task from its parent, just drag-and-drop it on an empty space in the tab page.  Or, right-click with the mouse and select "Release from Parent".

Task hierarchies are only available in the Professional version.

4. I've got Easy To-Do 1.5, how can I upgrade?

Just install Easy To-Do 2 on your computer. The first time you start the program, it should detect your previous database and convert it automatically. Your Easy To-Do 1 installation is not removed. It is in the folder where you choose to install it. You can still run it with the old database. But the two databases for version 1 and 2 are now completely separated.

5. Cannot print, the Preview button is grayed out.

Make sure that you first select a printer on the first tab page. Then select a paper format and size on the second tab page. This should make the Preview button and other tab pages available.

6. How can I view my archived tasks?

Normally only non-archived tasks are displayed. To display only archived tasks, select "View Archived Tasks" from the View menu. When you want to go back viewing non-archived tasks, just click "View Archived Tasks" again. Also, if you restart Easy To-Do, it will always initially display non-archived tasks.

7. What are the flag fields used for?

How you use the flag fields (red, green and blue) is up to your own imagination. One common use is to set the red flag for tasks that are important right now. You can then set the green flag for tasks that you intend to complete during the current day. By using the filter function it is then easy to show only those tasks.