Chromulan history (see also readme.txt, ulantype)
** v0.76.1

** 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

** 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


