Chromulan history (see also readme.txt, ulantype)
** v0.79 7.3.2003
- release with some bugs fixed (still with old script)
  - repeated saving of the file (if resident antivirus interferes)

** v0.78 14.1.2003
- ULScript3u - continue support for ifps3
- Assigning AAA program to acquired sample data file, can be browsed from
  spec window using local menu Program Browse command (will browse AAPG if
  it was assigned otherwise the normal sequence program)

** v0.77 9.12.2003
- loading menu items to Application menu from Menu_Application.ini file
  (MenuBuilder.pas, Main.pas)
- calculating theoretical number of plates - from local menu if mouse positioned
  above peak name (close to top of the chromatogram)
  (Spectrum.pas, SpecForm.pas)
- processor saving sequence after each sample finished acquisition
  (Processoru.pas)
- multipoint calibration
- starting integration ifps3

** v0.76 18.11.2003
- AAAu
  - skAAA set in SequenceUpdateDefaults
- BIG BUG fixed(?) related to writing/reading longstrings in ULObj:
  public properties writing/loading from stream could fail to load some
  properties if filled longstring fields contained.
  - PropUtl.pas - ClassWritePropsToStream/ClassReadPropsFromStream
  - ULObju.pas - Assign

  - solved number of problems

** v0.75 7.11.2003
- Modulu DoTimer fixed

** v0.74 9.10.2003
- ModuleProp logging can be switched on/off (WDG off)

** v0.73 17.6.2003
- fixed Templates directory missing backslash bug
- ShowModal now changes formstyle to stayontop

** v0.72 2.6.2003
** v0.71 31.5.2003
** v0.70 10.4.2003

** v0.69 9.3.2003
** v0.68 8.3.2003

** v0.67 28.2.2003
- nonmodal composed calibration file

** v0.66 19.2.2003
- composed calibration file

** v0.65 7.2.2003
- xml support with components
- Device.dll  - support for new voltmeter(s)
  customazible by Device.Def (xml)
- support for GHLabX (11 bit ad converter)
- web control through cgi + web server
- support for new file format - version 1
  (ULF written to file, if set in ini file to do so)

** v0.64 29.12.2002
- sequenceu.pas
  - using template file specified for sequence sample

- processoru.pas
  - the same

- spectrum.pas
  - GetPrg fixed (detached from USP.USP file, attached to sample ULF)

- ifs_utl.pas, ifspas.pas, ...
  - Delphi6 report integer overflow errors if expression
    (cardinal - 1) used, if cardinal is 0, fixed to check
    for 0 values or typecast by Longint()

- ulanglob.pas
  - default TemplateDir is now %DATADIR%Templates instead of %EXEDIR%Templates

- main.pas
  - OpenDialog.InitialDir set to DataDir

- aaau.pas
  - modified ASStateMsg to log also sample num and tempstate    
** v0.63 3.8.2002
- transformation for use with Delphi6, using CVS for version control,
  cleaned up sources

** v0.62 19.3.2002
- .ULC extension added to some file dialog windows
- ULObju.pas FileNameOpenSelect does not change system default directory anymore
- "Undiluted IS" flag added, files affected:
  UlanDef/ULMType.pas
  AnalSetupFrm.pas

** v0.61 17.2.2002

- comments are beeing added/moved ABOVE the methods/types/consts declaration,
  so that source documentation can be automaticaly created by pasdoc program

- ULObjUsru.pas : class function TULObjUsr.GetClassRecID; virtual; abstract; introduced,
  GetRecID modified to return GetClassRecID

- modulu.pas :
  - TModul ancestor changed from TPersistent to TULObjBasicUsr
    to be able to easily respond/create local menu items
- refresh properties from module menu item added to device properties
  browser local menu

- sequenceu.pas
  - added new FileDialog for selecting calibration file (simpler and
    offering just files with Calibration Standard parametr set).
  - Compose Calibration function started
  
** v0.60 17.1.2002
- fixed errors:
  - ulstringgrid/xstringgrid - CurChild setting (v0.59pi)
  - TULObjUsr.GetActiveChild
  - inserting sample to sequence
- added
  - canceling changes in active grid cell by pressing Esc
  - autosaving value of current grid cell if window closed

** v0.59 26.12.2001
 - DeviceName leading space bug fix

** v0.58 9.12.2001
 - sequence save changes/no bug fixed?

** v0.57 27.11.2001
 - overlay manager

** v0.56
 - fixed v0.55 introduced error in sequence window closing
 - fixed specform.TSpecForm redraw errors (connected to dragging or
   exceptions)
 - introduced OnMark event to modulu.TModule, called from
   MessageReceive
 - changed processoru.TProcessor OnMark philosophy -
   assigning OnMark directly to Processor.Channel.Devices before
   starting the sequence program

** v0.55
  - fixes in manual method peak assigning
  - sequence with mark

** v0.54 3.11.2001
 - quick fix to exelogu (IoResult call before Writeln)
 - manual assigning method peaks to data peaks
 
** v0.53 7.10.2001
 - support for Win98 in uLan mode using ul_wdm.sys driver

 - MARK taken (starts acquisition) just from the device that
   belongs to the current channel
   - AcqInfou.pas: DoMark,
   - Channelsu.pas: DeviceFindByAddr)

 - script new methods: DevSetStrU, DevGetStrU, StrToFloat
   - ULScriptu

 - analysis setup window - Apply button added
   (allows save setup changes before browsing program or
    data lines)

** v0.52 12.9.2001
 - partially sequence working

** v0.51
 - One sample with program (Pavel)

** v0.50
 - GNU Public License included
 - script support for sequences
 - Environment variable support (in dir names), defined env vars:
   ExeDir(=dir where is chromulan.exe), HomeDir(=%HOMEDRIVE%%HOMEPATH%),
   StartDir(=current dir where chromulan started)

** v0.49
 - fixed loading of ul_drv.sys in Win2000, separated setup of ul_drv.sys
 - nonworking standalone sequence (getting ready for script support)

** v0.48
 - txt export/import improved for Rosenberg

** v0.47
 - ULObjUsrNode objects
 - Edit forms for ULObj generated now runtime
 - fixed AAFrm mouse click error
 - extended script support
 - Skipping in time in AAPrg

** v0.46
 - fixed AAA bugs

** v0.45
  - ulobju rfSelected flag change message now called only upon real change
    (not just upon SetFlag call)

** v0.44
- ulstringgrid modified cell/row selection mechanism (excel-like?)
- ulobju, ulrectyp, ulstringgrid
  - DoCheckListBoxForm execute method for SET properties
  - FieldUsersNotify messages (with TULObjField lParam)
  - cmULObjUpdatedSelected (instead of cmULObjUpdated can be invoked)
    and other cmULObjXXX/cmULObjField notifying messages added
  - by field sorting (in grids) support
  - objdesc TULObjGridOptions can be specified for each ULObject

- compareu - comparerec takes now const argument

** v0.43

** v0.42
- fixing in timer runtime error (not fixed yet)
** v0.41
- support for non AAA sequences (event without autosampler)
- ULPRType.UsrPeakCoef used for calculations of peak area content

** v0.40
- FldNamesCaseNonSesitive ULObjDesc recflag added, FldDesc.IsFldName method added
- all visible "A..x" containing captions/names changed to "Pasive"
- support for ExtDev (GHLAB) improved

** v0.39
- DefValidDigits (for floats) extended from 4 to 6
- ExeLogu ... extended LOG functions (logdir, logtosyslog, inifile log options storage)
- some utility functions moved from FileScanner unit to WinUtl
  (Add/Del BackSlash, CheckDirExists)
- abandoning MyType/TVType/ConfType files, moving to UtlType
- abandoning Confu unit (functions moved to PropUtl)

** v0.38 8.3.2001
- AAA improvements, bug fixes
- ULStringGrid CaptionUpdate added

** v0.37 7.3.2001
- ULObjField directory select bug fix (adding backslash)

** v0.36 4.3.2001
- pripominky havlicek,..

** v0.35 23.2.2001

** v0.34 21.2.2001
- ULAD for AAA fix

** v0.33 21.2.2001
- fix assign calibration file

** v0.32 11.2.2001
- File|Open,New can open, create sequence

** v0.31 1.2.2001
- support for TEXT copy to clipboard to ULStringGrid
- fix Sequence create resultstable endless loop

** v0.30
- support of runtime adding menuitems by ULObjUsrs
- added sequence group commands - make results table, set calib.file...
- XGridForm (simple readonly spreadsheet for showing results)
- Window|Arrange improved

** v0.29 (started 26.1.2001)
- ulrectyp message sent to ULObjUserActionNeeded to eventually add local menu actions
  (recreated upon every menu popup)

** v0.29 (started 24.1.2001)
- fix for directories containing space char
- attrib unit fixed for longstrings
- showmessage longstring message bug fixed
- added fields to sequence records browser
- filling Data/Time field with Now
- report window version info sync. with runtime version


** v0.28 (started 18.1.2001)

- Language - language support
- ULDriver fixed FilterAdd (ignoring if the same params used) 
- ULAType DateTime field added (date/time of acquisition)
- AcqInfou Stop - assign Now to ULA.DateTime
- ulobju
  - fixed DoOnCreate inserting sorted child bug
  - added findbysortstr method


** v0.27
- fixed peak/baseline autodetecting problems for two data lines (AAA)

** v0.26 (started 13.1.2001)
- improving ULObj edit/browse interfaces

** v0.25 (started 8.1.2001)
- AAA ready to beta testing ...
- fixes to AAA
  - P1,P2 low,high limits shown from setup not from device
  - fixed AAA Prg - next sample not loaded if has dif program
  - disabled changing of sequence file when the sequence is running


** v0.24 (started 9.12.2000)
- AAA support extended - now really does something
- XStringGrid integrated to UlanLib (inplace editors)
- modul.DoTimer fixed

** v0.23 (started 28.11.2000)

- AminoAcidAnalyser related units
- Chromulan components (ValuePanel, LineControl, ULObjCtrl)
- ULDRType added field SerialNumber
- fixed some bugs (browser alldetails)
** v0.22 

- fixed SpecForm move report view

- new source directories created (sources files from ulan dir moved there):

  - ULObj ... source for generic persistent - in file storted - objects,
    - MakeComp.* files
    - ULObju, ULObjDes, ULRecTyp, ULRecUtl, ULFObju

  - UlanDef ... ULRec.lst (renamed to UlanRecs.lst) and ULxxType.pas
                files defining structure of ULxx objects
  - UlanObj ... source for ULObj descendants, specific for Chromulan,
                generated by MakeComp using UlanRecs.lst

- ULRecType
  - rfHasPointer (any ulobj that has same xxxx_Ptr named field(:Longint) should
      have this flag set)
  - ffNonVisible ( field with this flag set won't be included in edit form or browser)

- ULObju
  - support for tkMethod, published methods used to generate local
    popup menus for browsers
  - support for multiline AnsiString (memo) - read/write ASC
  - sorting by field values (string type ones for now)
  - support for _Ptr fields (every field with name ending with _Ptr
    is considered to by a pointer to some other UL object, and will
    be cleared upon loading - rfHasPointer must be set for the object)

- ULObjDes
  - support for ffNonVisible for creating browse fields

** v0.21
- fixing COM port params (ini, xxxOnOpen params fixed, they work now)
- confu ConfigClose/Open methods added (called from main, from XXXConfigReadWrite methods)
- acqinfou suspend/resume improved
- SpecForm.pas, spectrum.pas DoMath moDilute (keeping only every n'th datapoint)
- devsetfr, uldrvutl registery access fixed (writing to registry only on OK
  button and if changed), baudrate registry var added for user editing

** v0.20
2000/09/21
- selected peaks are selected in both - spectrum and browser windows
- data clear/truncate also removes peaks/baseline
- fixed drawing points to screen (DrawBuf)

** v0.19
- Suspend/Resume added, separated AcqInfo from SpecForm

** v0.18
- extended data import functions, external program convdata created,
  menu item Setup|Exp/Imp
- in Setup|Options can be set maximal number of opened chromatogram windows
- Clipboard support for object browsers (peaks, baseline, exp/imp definitions..)
  can copy/paste selected lines
- File|New - two new templates: Empty, FromFile

** v0.17
- autostop bug fix (worked only in ApexMode), analsetupform filename bug fix

** v0.16

- saveas dialog bug fix
** v0.15
- templates, autostop

** v0.14
- new saveas dialog (autochanging extensions)

** v0.13
2000/07/25
- removed FixDecSep function, setting DecimalSeparator to '.',
  
** v0.12

2000/07/13
- in ul_lcabs.pas - accept start mark from any device

2000/07/11
- solve 0 points baseline calculation
- dirty hack to select right filename for Save and SaveAs operations
  in TMainForm.FileSave_ItemClick and MainForm.FileSaveAs_ItemClick
  to set FMH.FileName:=Data.ULF.FileName

2000/07/10
- divided PeaksAmountsCalculateFromInternalStandard
  into PeaksAmountsCalculateInternalStandard
  and PeaksAmountsCalculateValues
- copy more parameters in PeakAssignParamsFromMethod
- do not update peak parameters from method
  in DoPeakLimitsChanged at calculation and move times
- in FinishPeak added call to PeakAssignParamsFromMethod
- Spect.PeaksAmountsCalculateInternalStandard added
  in TSpectrumForm.CalibrationFileSelect_ItemClick

** v0.11

2000/07/07
- math operation with displayed data
- calibration calculations
- loading,saving method (*.ULM files)

2000/07/04
- mathcopr - preventing underflow exceptions
- Chromulan.hlp added to setup file

2000/07/03
- read/write ul_drv parameters only from/to registry
- removed (separated) ghlab module, not necessary for running
- fixed bug in Spectrum.GetScreenBaseLineRec method

** v0.10
- only one instance of program allowed
- click on ULF file will open just one file

** v0.09
- recent files in menu
- UserCoef for ULxxType properties, support in ULBrowu, ULEdFrm

2000/06/19
- new UL records:
  - ULT, ULTE (todo); ULX, ULXR (undo)
- new mode: showpos implemented
- peak edges for negative peaks drawing/detecting mouse click
- moving chrom up/down, right/left by dragging X or Y coordinate (in Axis area)
- specform.dosaveas asking in overwrite existing (option in savedialog component)
- specform on exit if data modified asks if save
- centered x axis descriptions
- can open readonly

- ulanglob.PeakOverlapAllowed, attempt for support for overlaped peaks/baselines
- ulbrtype sortexp changed to =X1

** v0.08
- help file extended substantially
- GHLabPointTimeInterval added,
- UlanPointTimeInterval changed to type single
- specform.DragStartCursor
- every Chrom.window mode has now its cursor

** v0.07
2000/06/08
- define mode = baseline create -> thincross cursor on

2000/06/07e
- baseline insertpoint action
- baseline mergeselected action
- baseline groupselected/ungroupselected actions
- SpecForm.DoApexPacket now using CurUlanTime variable for X coordinate,
  that gets incremented by PointTimeInterval (=40 ms) upon every received point


** v0.06
2000/06/07
- glyphs define baseline/peaks/zoomin/zoomout
- fixed browser internalvalues
- thincross cursor
- show vertical line when moving baseline/peak margins

2000/06/05
- install - register extension .ULF
- fixed report (czechtext)

2000/06/03
- UsrValue conversions:
  - conversion support in ULObju.TULObjField.UsrValue property
    using On{Get|Set}UsrValue events
  - events set by Modulu.TModuleProp objects in Create
  - used in ULBrowu, ULEdFrm

** v0.05
2000/6/1 first installation - Rosenberg

- Inno setup using for installation
- added filtering for signal - to display


