ProDelphi 12.x
--------------

Additional remarks which are not in the description or might be overlooked:

  - Don't use the optimization switch of the compiler, in some cases the
    compiler produces wrong code ( this has nothing to do with ProDelphi ),
    and second the measurement results are less correct.

  - The best results concerning correctness are got if the profiled
    program does not run under the IDE.

Limitations of use:

  - Arithmetic expressions in $IF or $ELSEIF statements are always treated
    as TRUE. This is normally no problem (see Readmexx.doc).

Changes made in ProDelphi Version 12.1  (3/28/2003)
  - Correction of algorithym for estimating the CPU-speed for mobile processors.

Changes made in ProDelphi Version 12.0  (3/23/2003)
  - Clicking on a method in the viewer window opens the source file and 
    positions the cursor to the method definition (Delphi 5 .. 7 only).
  - Multiple history files possible now.
  - Print menu displays the number of pages used for printing the results.
  - Bugfix: Print All Pages printed only the first page.

Changes made in ProDelphi Version 11.7  (3/8/2003)
  - Viewer enhanced
  - Bug in API fixed (ProfAppendResults did not work)
  - User Guide corrected

Changes made in ProDelphi Version 11.6  (1/30/2003)
  - Bugfix in parser resolved. 
  - Setup program fixed: start from network drive now possible.

Changes made in ProDelphi Version 11.5  (11/11/2002)
  - Bug in displaying data after sorting the results with class or method
    as sort criteria (the colums which include child times were not
    actualized).

Changes made in ProDelphi Version 11.4  (10/15/2002)
  - Setup program improved: it is no nonger necessary to manually install
    ProfMeas.dll. For upgrading from freeware version to professional 
    version a complete distribution has to be downloaded from internet.
  - Bugfix: Definition of SleepEx in the interface file corrected.

Changes made in ProDelphi Version 11.3  (9/30/2002)
  - Bugfix: Files named in the Uses - statement of a DPR-file were profiled
    even they were write protected.
  - Bugfix: Project settings were not persistent if DPR- and EXE-file were
    in different directories.

Changes made in ProDelphi Version 11.2  (9/4/2002)
  - Bugfix: Information for measured specified parts of procedures was 
    missing if ‘Local procedures’ was not activated.

Changes made in ProDelphi Version 10.5/11.1  (8/29/2002)
  - Parser enhancement: Procedure declarations over more than one line are
    handled now

Changes made in ProDelphi Version 10.4    (8/8/2002)
  - Bugfix: PostMortem Review produced wrong USES-statements

Changes made in ProDelphi Version 11.0    (7/22/2002)
  - Adaption to Delphi 7

Changes made in ProDelphi Version 10.3    (7/21/2002)
- Profiling of a program that is measured simultaneously together with DLL's 
  and profiling of simultaneously measured DLL's made  easier (this includes 
  an improvement of the user guide).
- Bugfix of release 10.2: Clean function did not clean all files.
- Bugfix of release 10.2: Some files named in the uses-statement were not 
  profiled when they were not in the search path (this concerned DLL's only).

Changes made in ProDelphi Version 10.2    (7/15/2002)
  - Processing of environment variables in pathnames added
  - Profiling of files named in the USES-statement of the DPR-file of the
    profiled project added.

Changes made in ProDelphi Version 10.1    (7/1/2002)
  - Upgrade for cross platform development Windows / Linux
  - Parser bug in treating CASE-statements fixed
  - Setup program enhanced (treatment of missing registry keys)

Changes made in ProDelphi Version 10.0    (5/26/2002)
  - Maximum and minimum runtimes stored
  - Button to open the user guide
  - User Interface improved
  - Optional profiling of the library path
  - Profiling specified parts of a method
  - Bugfix: Rounding bug in sorting after maximum changes fixed
            
Changes made in ProDelphi Version 9.6    (4/3/2002)
  - Improvement: Automatic and cyclic storage of measurement results
                 via online operation window.
  - Bug fix: Two END-statement in one line could have caused procedures 
             not to be profiled.

Changes made in ProDelphi Version 9.55    (3/25/2002)
  Nothing. The files copied to the web site were wrong, to make sure
  one has the correct file, the version was increased.

Changes made in ProDelphi Version 9.54    (3/19/2002)
  - Bug fix: Sometimes class definitions in an include file or in the
             implementation part of a unit were misinterpreted
  - Bug fix: Forward definitions of overloaded functions caused wrong
             results in the viewer if these definitions were made in
             the implementation part or in an include file
  - Bug fix: In the viewer window it was not clear, which of overloaded
             functions consumed the CPU time (now they are enumerated)
  - Improvement: Due to some customers request, the time stamp of a 
                 profiled file optionally is only changed by a minimum
                 through profiling or cleaning. On request now the
                 time is only changed by 3 sec's so that the IDE still 
                 recognizes that a file has changed.
    This feature is available in the professional mode only !!!
      
Changes made in ProDelphi Version 9.53    (2/12/2002)
  - Warning, if Method declarations are split into two lines
  - Log improved
      
Changes made in ProDelphi Version 9.52    (1/17/2002)
  - Bugfix: If optimization was activated in the source file the automatic 
            deactivation did not work always and produced multiple lines for 
            deactivation. 
      
Changes made in ProDelphi Version 9.51    (1/15/2002)
  - Bugfix: Names of local procedures were converted to upper case. 
  - Bugfix: When processing files with the read only attribute, the read 
            only attribute was not set to true after profiling or cleaning.
  - Bugfix: If local procedures were present but were not profiled,
            an exception could have occured when starting the program.

Changes made in ProDelphi Version 9.4     (1/6/2002)
  - Printed report enhanced: Color save mode or full color mode
    selectable
  - Optical improvement

Changes made in ProDelphi Version 9.3     (12/5/2001)
  - For Delphi 6 the DOF-file was misinterpreted which caused files
    not to be profiled

Changes made in ProDelphi Version 9.2     (11/25/2001)
  - Button texts for selecting a method corrected
  - Optical improvement
  - Documentation as PDF-file
  - CLX support reactivated
  - Exclusion of directories for profiling
  - Bug fixes

Changes made in ProDelphi Version 9.1     (8/3/2001)
  - Printing of Reports added
  - CLX support deactivated

Changes made in ProDelphi Version 9.0     (6/22/2001)
  - Support of Delphi 6
  - Support of CLX library

Changes made in ProDelphi Version 8.55    (4/21/2001)
  - Size optimization for one of the measurement DLL's (Profmeas.DLL)
  - Search function of the viewer optimized
  - Processing of Initialization and Finalization part corrected

Changes made in ProDelphi Version 8.54    (2/24/2001)
  - New feature: Always on top for online operation window
  - Bug fix: Class methods and Class forward references can be handled
  - Bug fix: Processing of relative pathnames improved

Changes made in ProDelphi Version 8.53    (2/19/2001)
  - Incomplete error message concerning missing file fixed
  - Cleaning the sources now also deletes the measurement result files (opt.)

Changes made in ProDelphi Version 8.52    (2/14/2001)
  - Units without USES-clause wer not profiled

Changes made in ProDelphi Version 8.51    (1/27/2001)
  - New feature to measure only the main thread
  - Bugfix: Counting inherited times for caller fixed

Changes made in ProDelphi Version 8.5     (12/15/2000)
  - user interface made more secure and easier understandable,
  - warning shown if no DOF-file exists,
  - viewer automatically selects the result file,
  - viewer sorts detail window when clicking column headers,
  - registration integrated in main program,
  - two minor bugfixes.

Changes made in ProDelphi Version 8.4a    (10/21/2000)
  - Parser bug fixed

Changes made in ProDelphi Version 8.4     (10/16/2000)
  - Browser enhanced
  - Viewer consumes less memory now

Changes made in ProDelphi Version 8.3     (09/03/2000)
  - Viewer enhanced
  - Parser enhanced
  - Bug in SETUP.EXE fixed, aborted if no drive C: existed

Changes made in ProDelphi Version 8.2     (07/31/2000)
  - Profiler aborted instrumenting when processing a file with
    a total length of less than 80 bytes.

Changes made in ProDelphi Version 8.1     (07/12/2000)
  - Version from 07/07/2000 could only be installed with 
    administrator rights under Win NT / 2000

Changes made in ProDelphi Version 8.1     (07/07/2000)
  - Color and font enhancements for the viewer
  - Error message concerning not ready removable drives corrected

Changes made in ProDelphi Version 8.03    (06/01/2000)
  - ProDelphi reported 'No space on disk' if a part of the units
    search path had no drive letter: fixed.
  - Units search path not editable anymore (caused some problems)

Changes made in ProDelphi Version 8.02    (05/22/2000)
  Enhancements for profiling multithreaded applications:
  - Measurement overhead decreased,
  - Accuracy increased,
  - Calibration process tuned (much faster now).
  Enhancement for single and multithreaded applications:
  - Calibration now processor and Delphi-version dependant (higher
    accuracy for Delphi 2..4),
  Comments in the DLL-Examples corrected.

Changes made in ProDelphi Version 8.01    (05/13/2000)
  - Storing of measurement results tuned

Changes made in ProDelphi Version 8.0     (04/27/2000)
  - Dynamical switching measurement on and off enhanced:
    . Instead of calling the API-functions ProfActivate and ProfDeactivate
      a special comment can be placed before the method with which the
      measurement should be started (//PROFILE-ACTIVATE). The maximum
      number of activation comments is unlimited.
    . At the end of the profiling process a dialog window is opened
      in which activating methods can be selected (if dynamcic activation 
      is wanted). Between different activation methods can be switched 
      without a new profiling process to be executed. The maximum amount of 
      activation methods selected interactiv is 16.
    . Activation by inserting //PROFILE-ACTIVATE and selecting in a
      dialog window can be mixed.
  - Measurement an start options do not afford a new profiling process.
  - Measurement results can be emulated for another PC than that one on 
    which the measurements have been done. So easily a slower or faster 
    customers PC can be emulated. This saves the installation of the 
    complete IDE on the customers equipment. Of course an emulation has
    a lower accuracy than a measurement done with the original equipment.
  - Profiling log added
  - Freeware mode only: If more than 30 procedures are measured, the
    the runtime of all those procedures that are not displayed is 
    summarized and displayed.
  - Post mortem review enhanced:
    . In a case of an exception the name of the exception is given,
    . Handling of recursively called functions improved.

Changes made in ProDelphi Version 7.62    (04/17/2000)
  - Two or more entries $(Delphi) in the units search path caused a profiling
    error when after $(Delphi) either \Lib or \Source was noted.
  - Processing of $IFDEF, $IFOPT, etc. was case sensitive (needed to be
    in capital characters).
  - $IFDEF in a Uses-statement caused errors.
  - Units search path is editable now (due to a customers request).
  - Amount of profilable method increased from 16000 to 32000 (due to a
    customers request). Professional mode only.

Changes made in ProDelphi Version 7.61    (04/06/2000)
  - Pathname problem fixed

Changes made in ProDelphi Version 7.6/7.5 (03/25/2000)
  - browsers tuned (7.6)
  - parser bug fixed (7.5)
  - handling of the function MsgWaitForMultipleObjects(Ex) corrected(7.6)

Changes made in ProDelphi Version 7.4 (02/27/2000)
  - Coverage Profiling on a procedural base: A browser displays all those
    methods which were not called.
  - Accuracy for measurement of pure Assembler procedures increased
    (professional mode only)

Changes made in ProDelphi Version 7.3 (01/15/2000)
  - Enhanced accuracy of measurement, especially for nested procedures.
  - Optimization is automatically switched off if the user forgets to 
    uncheck the optimization switch. This prevents crashes of the testee
    and guaranties a high accuracy measurement.
  - In Professional mode 16000 methods can be measured now (before 10000).
  - Bugfix: The $IFOPT compiler directive was not processed.
  - Bugfix: Example program displayed wrong time with some Intel processors.

Changes made in ProDelphi Version 7.2 (11/21/1999)
  - Bugfix: Setup corrupted the Delphi tools menu if already more than
            nine tools existed. Uninstall deleted one entry too much
            in the tools menu, if ProDelphi was not the last installed
            tool.
  - ProDelphi can now process relative pathnames.

Changes made in ProDelphi Version 7.1 (11/03/1999)
  - Bugfix: Profiler could not be executed under Windows 95A.

Changes made in ProDelphi Version 7.0b (09/28/1999)
  - Bugfix: The Delphi demo sources could not be profiled 
            (Error message: Path error).
  - Files in and below the Delphi LIB and SOURCE directory are excluded
    from profiling

Changes made in ProDelphi Version 7.0 (09/26/1999)
  - Additions for Delphi 5
  - History window corrected: It displays '---' for the time now, if no times
    for a method are not stored in the history file. Before the times of the
    actual run were displayed.

Changes made in ProDelphi Version 6.7 (09/19/1999)
  - SetUp program corrected: Administrator rights for Windows NT not 
    necessary anymore.
  - Integration into Delphi 2 tools menu fixed.
  - Integration into Delphi 2/3/4 tools menu enhanced.
  - Viewer enhanced for use with large screen fonts.
  - Some changes done for use with Delphi 5 (not tested yet).

Changes made in ProDelphi Version 6.6 (08/24/1999)
  - History function: Comparing the actual runtime by mouse click with
    a preceding one, colored grids show which method got faster, which slower.
  - Search path can be longer than 255 characters now.
  - Documentation enhanced: hints for optimization and excact measurement.
  - Addings for Delphi 5 done (not tested yet).

Changes made in ProDelphi Version 6.5a/b/c/d/e (08/15/1999)
  - Bugfix concerning wrong output directory for 2 profiler internal files (6.5a) 
  - Incompatibility with the tool Arabella (ProDelphi used the same filenames)(6.5b) 
  - Spaces in filenames are accepted now (6.5c)
  - Sorting of the detailed results causeD displaying wrong times (if the
    filter option to exclude methods with very small runtimes was used).(6.5d)
  - SetUp-program fixed, install didn't insert ProDelphi into the tools menu
    and uninstall didn't delete it. (6.5d)
  - Problems with profiling assembler procedures solved (professional mode) (6.5e)
  - With Windows 95a and partition sizes > 2 GB the checking for enough
    free disk was malfuntioning (6.5e)
  - For security reasons, the Delphi LIB-directory is not profiled anymore (6.5e)
  - Example program corrected: the displayed number of CPU-Cycles were
    correct but the displayed times were correct only on a PC with 233 MHz
    (estimation of CPU-frequency was missing) (6.5c)
  - Example program enhanced to fit to the higher accuracy of ProDelphi:
    smallest unit of time is now 0.001 micro second. (6.5c)
  - Display format of example program changed to the style of ProDelphi. (6.5c)

Changes made in ProDelphi Version 6.5 (07/22/1999)
  - Bugfix: rounding error
  - Multiple directories can be profiled now
  - DOF-file entries are used by ProDelphi now
  - Viewer enhanced: smallest displayed time unit now 0.001 micro second,
    Display format made better readable.

Changes made in ProDelphi Version 6.4 (06/03/1999):
  - Bug fix: Setup aborted installation procedure when running under
    Win95a or Win95b. No such problems occured under Win95c or WinNT 4.0.
    I hope it also runs under Win98.
    Release of Setup program is now V2.0.

Changes made in ProDelphi Version 6.4 (05/30/1999):
  - Bug fix: Updating the list of files before profiling, corrected following
    mistake: If a file was copied to the profiling directory and ProDelphi
    was started, this file was not profiled.
  - Integration of ProDelphi into the Delphi Tools menu
  - Comfortable Setup program included now (V1.0)
  - Example programs included

Changes made in ProDelphi Version 6.3a (05/16/1999):
  - Bug fixed: Crash could occure in Local Procedures (or wrong result)
  - Measurement not correct: 1 CPU-Cycle to much measured

Changes made in ProDelphi Version 6.3 (05/12/1999):
  - Freeware and Professional mode:
    * Automatic reading of defined compiler symbols and switches from the
      DOF-file
  - Freeware mode:
    * number of measured procedures now 30 (before 20)
    * measuring of local procedures now possible
    * counting time of inherited methods for calling method possible now
  - Professional mode:
    * Profiling pure assembler procedures.

Changes made in ProDelphi Version 6.2a (04/10/1999):
  - Parser-bug concerning class variables fixed.
    
Changes made in ProDelphi Version 6.2 (04/05/1999):
  - Conditional compilation supported now, this means that IFDEF/IFNDEF-
    statements are evaluated now.
  - Enhancement of the viewer: Sorting of the results in the detail
    window after every possible criteria (alphabetical, procedure runtime,
    procedure runtime sum, procedure runtime incl. child time, etc. etc).
  - Browser added to the viewer.
  - 3 more Windows- API functions which set the program into idle status are 
    handled now (no idle time measuring).
  - Memorises important profiling options.
  - Warning to save source files before profiling displayed now.
  - Minor sorting bug fixed.
  - Parser bug concerning nested local procedures corrected.
  - Upgrading to professional mode now by Serial Number. This means a
    better customer service. 
    Just look at my homepage, if there is a new version, just download it, 
    it runs with your serial number.

  Attention: Delete old *.PAS, *.DFM and *.DLL files of ProDelphi if you are
             upgrading from an older version of ProDelphi.

Changes made in ProDelphi 6.1 (03/07/1999):
  - The viewer was enhanced, the Detail-window can be enlarged until full 
    screen. Making the viewer windows smaller, results in hiding unimportant
    parts of the informations (not for Detail-window), so that the window 
    can be made much smaller.
    Some windows have got a splitter, so that the window can be made smaller.
    The end of Unit-, class- and procedure names are no longer cut off after
    25 characters (space for 40 characters availlable now).
  - Parser bug concerning pure assembler procedures corrected.
  - Calibation procedures are in a DLL now (ProfCali.DLL).
  - Additional Windows- and Delphi- API functions which set the program into
    idle status are handled now (no idle time measuring).
  - Instead of DCU-files as interfaces to the DLL's, now PAS-files are delivered.
    This has the advantage that extensions can be made by the user of ProDelphi.
    Changes in those units are made on own risk. This concerns mainly  API-
    functions that cause setting the program into an idle state.
  - Documentation enhanced.


Changes made in ProDelphi 6.0 (02/12/1999):
  - DLL-Support was enhanced: Now it is possible to profile program and DLL's
    simultaneously (or separetely as in version 5.3)
  - Read-Only files are either not profiled now or the Read-only attribute
    is automatically deleted.
  - Documentation corrected and completed.
  - Measuring bug concerning Application.ProcessMessages,
    Application.HandleMessage, DispatchMessage, Sleep and SleepEx corrected.
  - Parser bug concerning //PROFILE-NO without //PROFILE-YES corrected.
  - Parser bug concernig key words ASSEMBLER, FORWARD and EXTERNAL corrected.

Changes made in ProDelphi 5.3 (12/20/1998):
  - DLL-Support added
    It is not described in the documentation yet. I've made a little example
    to show, how a DLL is measured. Unzip the files in DLLSUPP.ZIP and read
    the comments in the sources. It is quite simple.

Changes made in ProDelphi 5.2 (12/18/1998):
  - Parser-bug concerning tabs in function or procedure statements corrected.
  - Parser-bug concerning BEGIN / END in variable names,
  - Viewer-bug corrected:
    If more than one measurement run was made (using the Append-button in
    the on-line operation window) and one or more procedures were never used,
    the procedure names from the second run on were wrong and so not usable.

Changes made in ProDelphi 5.1 (11/22/1998):
  - Parser-bug concerning Application.ProcessMessages and DispatchMessages
    corrected
  - Sleep and SleepEx is treated now.

Changes made in ProDelphi 5.0 (11/15/1998):
  - Inserted profiling statments are now partly in Assembler. This results
    in less measurement overhead and a better measurement accuracy (in my
    test program results of the measured program had an accuracy of
    +- 1 CPU-cycle on AMD K6. Results on Pentium without MMX are not so
    accurate).
  - Fixed 1 bug: testee aborted at program end if all procedures had a
    runtime of 0 CPU-cycles (empty procedures).

Changes made in ProDelphi 4.0 (10/11/1998):

  - Export into data base,
  - Adding a viewer to look at the results directly with the profiler,
  - measurement results in CPU-cycles availlable
  - 2 minor bug fixes
  - greater accuracy and less measurement overhead compared to previous
    versions by using 64 bit integers instead of data type Comp.
  - measurement results for recursive procedures fixed.
  - greater accuracy for calling of deactivated procedures (professional
    version only).
  - support of Delphi 4.

Attention:
  ProDelphi 2.x for non-Intel-compatible CPU's is no longer supported.

Changes made in ProDelphi 3.1 (05/10/98):


Profiler.exe :
  Error message if too many procedures,
  Remembering the last directory for next startup of PROFILER.EXE,
  Easier installation.

Proftime.DCU :
  Dramatically increased accuracy in time measurement (especially for
    small  procedures),
  greater accuracy in determining the CPU-speed (especially for CPU
    >= 200 MHZ),
  no exception when running under IDE and Windows NT (the exception
    was produced by will but disturbing accuracy or functionallity),
  correction for the case that more than 20 procedures are registered,
  Remembering the last screen position for the online operation window.


