______________________________________

Signal Display Delphi Component
version 3.2.5
by Robert Rossmair
______________________________________










Description
Compatibility
Current file versions
Recent changes
Backward compatibility
Using the component in a commercial application
Known bugs
Installation
Help file installation
File list
Copying policy
New versions


Description

The ZoomDisp unit implements TZoomDisplay, a display for one-dimensional digital signals providing quasi-stepless zooming capability.
Originally designed to display audio signals, TZoomDisplay could just as well be used to plot the progress of stock prices. Samples not necessarily have to be equidistant; a specialized descendant of TCustomZoomDisplay has been used as music synthesizer envelope editor.

Compatibilty

Delphi 2.0 / Delphi 3 / Delphi 4

Current file versions

ZoomDisp package: 21-May-1999
ZoomDisp unit: 3.2.5 (18-May-1999)
ZoomDemo project: 1.7.3 (21-May-1999)

Recent changes

Version 3.2.1 (22-Aug-98):
To facilitate the use in commercial programs, the license has been changed to the GNU Library General Public License.
Changed declaration of T16BitSampleArray and T24BitSampleArray for the sake of Delphi 4 compatibility.
Version 3.2.0 (30-Jul-98):
  features background grid (new ShowGrid sub-property for HorzScale/VertScale properties)
  More visual feedback in design mode
  Changed parameter list of OnWorldPosChange event (!)
  Some fixes

Version 3.1.0 (25-Jun-98):
  Possibility to change the zoom mode temporarily by pressing the Shift key
  Bug fixes

Version 3.0.0 (04-Jun-98):
  features diagram scales
  New types:
TDisplayScale
TGetScalePointProc
Changes in T(Custom)ZoomDisplay
  New properties:

  • HorzScale
  • VertScale
  • MinVertScaleWidth
  • OnGetHorzScalePoint
  • OnGetVertScalePoint

  •   Optimizations in PlotByteArray, PlotSmallintArray
      Buffered and MonochromeBitmap now True by default

    Version 2.1.0 (30-Apr-98):
      Changes in TCustomZoomDisplay:

  • New property PaintMode
  • TAmpFunc result type changed; consequential changes in PlotSamples
  • removed property WorldPoint (superfluous)
  • renamed Canvas to WaveformCanvas
  • Backward compatibility

    In version 3.2 the parameter list of the TCustomZoomDisplay.OnWorldPosChange event has changed.

    For some reason T(Custom)ZoomDisplay's Canvas property has been renamed to WaveformCanvas. Thus version 2.1 of ZoomDisp.pas will break all programs which use Canvas. You'll have to change all occurences of "Canvas" in your code to "WaveformCanvas".

    To minimize the probability of naming conflicts, the Colors and Math32 units have been renamed to RRColors and RRMath, respectively. Again, if you refer to these units in your code you'll have to change all occurences accordingly.

    Using the component in a commercial application

    It is possible to use the component in a commercial application. Read the license conditions (file COPYING.Lib) carefully.
    To satisfy the license conditions most easily, don't link your code with the signal display component code statically. In other words, distribute the component's code as separate package(s) (this requires Delphi 3 or 4); you might use the packages rrCmpInf, rrLib and rrSigDpl contained in zoomdisp.zip.

    Known bugs

    When using a monochrome off-screen bitmap, under Delphi 2 foreground color is always black.

    Installation

    I suggest to unpack the zip-file into a private directory. If you have other components written by me, put all their files into one directory since they might share some units. In this case, use unzip with the -u option to avoid overwriting newer unit versions.

    If you have Delphi 3 installed, you should install the packages first, with Delphi 2 you have to install the component unit (ZoomDisp.pas) by hand. In either case, you need to install rrScroll.pas if you want to examine the demo project (ZoomDemo.dpk is omitted in this package release).

    To install the packages, open, compile and install the package source files in the following order:
     
    1. rrLib.dpk code shared by some of my components
    2. rrCmpInf.dpk component information
    3. rrSigDpl.dpk signal display component

    If you have the Math unit (not included in Delphi 3 Standard), you may remove the NoMath conditional define (dialog Project|Options, page "Directories/Conditionals").

    To compile the demo, it is not necessary to install the components at all. When opening ZoomDemo.dpr, simply quit the error message

        Class TZoomDisplay not found. Ignore the error and continue. <etc.>

    by clicking on "Cancel" (not "Ignore"). However, you won't be able to examine ZoomMain.dfm as long as the component isn't installed.

    Help file installation

    Basically, the help files are designed for Delphi 3. That means that links into Delphi help files (e.g. to TCustomControl) won't work with Delphi 2.0. What's more, although the underlying .RTF file contains B-footnotes, obviously a bug in the Keyword Generator prevents them from being included into ZoomDisp.kwf. Therefore under Delphi 2.0 context-sensitive help is available only for the subproperties of TZoomDisplay's Info (CompInfo.hlp), HorzScale and VertScale (RRScales.hlp) properties .

    Delphi 2.0:

    Delphi 3:

    File List

     
    File Description Copying policy
    Copying.Lib GNU Library General Public License 3
    ZoomDemo.dpr demo app. project file 1
    ZoomDemo.dof demo app. project options 1
    ZoomMain.pas demo app. main unit 1
    ZoomMain.dfm demo app. main form 1
    ZoomDisp.pas Component unit 2
    ZoomDisp.res resource file 2
    ZoomDisp.dcr Component resource 2
    ZoomDisp.hlp Component help file 2
    ZoomDisp.kwf keyword file for ZoomDisp.hlp 2
    RRScales.pas TScale object source file 2
    RRScales.dcr RRScales resource file 2
    RRScales.hlp Component help file 2
    RRScales.kwf keyword file for RRScales.hlp 2
    RRColors.pas auxiliary unit 2
    RRMath.pas auxiliary unit 2
    RRScroll.pas TrrScroll component source file 1
    RRScroll.dcr RRScroll resource file 1
    CopyrInf.pas auxiliary unit 1
    CompInfo.pas auxiliary unit 1
    CompInfo.dfm "Component Information" dialog 1
    CompInfo.hlp help file for CompInfo 1
    CompInfo.kwf Keyword file for CompInfo.hlp 1
    mUrlLabel.pas auxiliary unit for CompInfo 4
    mUrlLabel.dcr mUrlLabel resource file 4
    mUrlLabel.res mUrlLabel resource file 4
    rrCmpInf.dpk Delphi package source file 1
    rrLib.dpk Delphi package source file 1
    rrSigDpl.dpk Delphi package source file 1
    Signal display package readme.htm this file 1

    Copying policy

    Copying policy 1 means:
    Use, modification and distribution is allowed without limitation, warranty, or liability of any kind.
    Copying policy 2 means:
    This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public License for more details.

    You should have received a copy of the GNU Library General Public License (file COPYING.Lib) along with this library; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

    Copying policy 3 means:
    Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
    Copying policy 4 means:
    These files are freeware copyright Ahto Tanner, Moon Software.

    New versions of zoomdisp.zip

    The most recent version of zoomdisp.zip is available at my WWW-homepage.



    If you have any comments, bug reports etc., send me an email.

    Last updated May 21, 1999.