What: Restructuring of JVCL 1.3
Who:  Peter Thrnqvist [peter3@peter3.com]
When: 2002-06-01 to 2002-07-01

CHANGES:
=======
Merging of TJvEdit:
------------------
Merged TJvEdit, TJvExEdit, TJvExEdit, TJvCaretEdit and TJvAlignedEdit into new TJvEdit
Moved JvEdit to \archive
Moved JvExEdit to \archive
Moved JvCaretEdit to \archive
Moved JvAlignedEdit to \archive
Removed TJvCustomEdit from JvComponents - now in JvEdit
Moved TJvCaret from JvCaretEdit to JvComponent
Added new JvEdit to \source

Merging of TJvMemo:
------------------
Merged TJvMemo, TJvMemoEx and TJvDisplaymemo into new TJvmemo
Moved JvMemo to \archive
Moved JvMemoEx to \archive
Moved JvDisplayMemo to \archive

Added new JvMemo to \source
Moved TJvCustomMemo from JvComponent to JvMemo
Added property HideCaret:boolean to TJvMemo to simulate what is done in JvDisplayMemo

Merging of JvCheckListBox:
--------------------------
Merged TJvFixedCheckListBox into TJvCheckListBox
NOTE: added the WMHScroll message handler from TJvFixedCheckListBox to
      TJvCheckListBox but I don't know what the code does:
      can't see that it makes any difference (maybe someone can investigate?)
Moved JvFixedCheckListBox to \archive
Added new JvCheckListbox to \source

Merging of JvDateTimePicker:
----------------------------
Added NullValue,NullText and DropDownDate to TJvDateTimePicker, making JvDateTimeNullPicker obsolete
Moved JvDateTimeNullPicker to \archive


Merging of TJvPageControl:
--------------------------
TJvPageControl2, TJvOwnerDrawPageControl and TJvButtonPageControl merged into TJvPageControl
JvPageControl2, JvOwnerDrawPageControl and JvButtonPageControl moved to \archive


Merging of JvListBox:
---------------------
-->I decided to keep 2 listbox "types": one with images and one without

Merged TJvAlignListBox, TJvListBox2, TJvExListBox into JvListBox.pas (new unit)
Moved JvAlignListBox, JvListBox2, JvExListBox to \archive
Removed TJvCustomListBox from JvCtrls, added JvListBox to uses and inherited TJvListBox (in JvCtrls) from TJvCustomListBox (in JvListBox) instead
--> maybe better to either put TJvListBox in JvListBox.pas or TJvCustomListBox in JvCtrls.pas to keep them together ?

Changed TJvPlayList inheritance from JvListbox2 to JvListBox
TJvBMPListBox not touched (buggy om W2k, move to \archive?)
TJvMultilineListBox not touched (too different)

Merging of JvImageListBox:
--------------------------
Merged TJvImageListBox into TJvListBox3
Moved JvImageListBox.pas to \archive
Fixed some bugs in TJvListBox3
Changed JvListBox3 inheritance from JvCustomListBox to TCustomListBox and added AboutVCL property
Renamed TJvListBox3 to TJvImageListBox

Changes to TJvComboBox:
-----------------------
Removed TJvCustomComboBox from JvComponent
Added TJvCustomCombobox to JvComboBox
Changed ancestor of TJvCombobox to TJvCustomCombobox (was TComboBox)

Merging of TJvFontComboBox:
---------------------------
Merged TJvFontComboBox into TJvFontComboBox2
Renamed TJvFontComboBox2 to TJvFontComboBox
Moved JvFontComboBox and JvFontBox to \archive
Replaced TJvFontComboBox icon in JVCLReg.dcr with TJvFontComboBox2 icon  

Merging of JvImageComboBox:
--------------------------
Merged TJvImageComboBox into TJvCombobox3
Changed TJvCombobox3 inheritance from JvCustomComboBox to TCustomComboBox and added AboutVCL property
Moved JvImageComboBox to \archive
Renamed TJvCombobox3 to TJvImageComboBox

Merging of TJvIPAddress
------------------------
Added AddressValues property to TJvIPAddress
Moved JvIpBox to \archive (duplicates TJvIPAddress)

Merging of TJvProgressBar
-------------------------
Merged TJvProgressBar2 with TJvProgressbar
Moved TJvDBProgressBar from JvProgBarEx to JvProgressbar
Moved JvProgBarEx to \archive


Merging of TJvFileInfo:
----------------------
Merged TJvFileInformations into TJvFileInfo
Moved JvFileInformations to \archive
Changed reference to TJvFileInformations in JvRecentDocs to reference TJvFileInfo instead

Merging of TJvShFileOperation:
-----------------------------
Moved JvFileUtils to \archive (duplicates TJvSHFileOperation)
Changed ancestry of TJvSHFileOperation to JvCommonDialog (to enable automatic preview)
Added support for the hFileMappings member of TShFileOpStruct

JvLoginDlg:
-----------
Modernized (removed BitBtn)
strings are now resourcestrings

JvSerialDlg:
------------
Modernized (removed BitBtn)
strings are now resourcestrings

JvPasswordForm:
---------------
Modernized (removed BitBtn)
strings are now resourcestrings

JvExchListboxes:
----------------
Modernized (removed BitBtn)
strings are now resourcestrings
fixed a few bugs

Merging of TJvBrowseFolder:
--------------------------
Removed registration of TJvBrowseFolderDialog from JvDialogsReg
Merged TJvShellBrowser into TJvBrowseFolder (OnSelectionChanging,UpdateStatusText and SetOKEnabled)
Fixed a few minor bugs in TJvBrowseFolder
Moved JvShBrowse to \archive
Moved JvShBrProperty to \archive (property editor used by TJvShellBrowser)

Merging of TJvChangeNotify:
---------------------------
Moved JvDirectorySpy to \archive - duplicates JvChangeNotify
Made TJvChangeNotify.Execute threaded (not tested yet)

Merging of TJvFindFiles:
-------------------------
Changed ancestry of TJvFindFilesDialog2 to TJvCommonDialog
Moved JvFindFiles to \archive
Renamed JvFindFiles2 to JvFindFiles
Renamed TJvFindFilesDialog2 to TJvFindFilesDialog
Changed icon name in JvP3reg.dcr
Changed registration in JvP3Reg

Merging of TJvFormatDrive:
--------------------------
Removed registration of TJvFormatDialog from jvDialogsReg
Renamed TJvFormatDrive2 to TJvFormatDrive
Changed icon name in JvP3reg.dcr
Changed registration in JvP3Reg

Merging of TJvTreeView:
-----------------------
Merged TJvTreeView2 into TJvTreeView
Moved JvTreeView2 to \archive

Merging of TJvTrackbar:
-----------------------
Merged TJvTrackbar2 and TJvFixedTrackBar into TJvTrackabr
Moved TJvTrackbar2 to \archive
Moved JvFixedTrackbar to \archive

Merging of TJvGroupBox:
-----------------------
Merged TJvGroupBox2 into TJvGroupbox
Moved JvGroupBox2 to \archive


Merging of TJvTabControl:
-------------------------
Merged TJvExTabContro into TJvTabControl
Moved JvExTabcontrol to \archive

Merging of TJvLabel:
--------------------
Merged TJvExLabel into TJvLabel
Moved JvExLabel to \archive

Merging of TJvScrollBox:
------------------------
Merged TJvKeyScrollBox into TJvScrollBox
Moved JvKeyScrollBox to \archive

Merging of JvFunctions:
-----------------------
Merged JvComponentFunctions into JvFunctions
Moved JvComponentFunctions to \archive
Changed a couple of references from JvComponentFunctions to JvFunctions

Merging of TJvStringGrid:
-------------------------
Merged TJvScrollEvStringGrid,TJvControlStringgrid, TJvExStringgrid into TJvStringGrid
Moved JvScrollEvStringGrid, JvControlStringgrid, JvExStringgrid to \archive

Merging of TJvSearchFiles:
--------------------------
Merged TJvSearchFile,TJvSearchFiles, TJvFileTreeScan into TJvSearchFiles
Moved JvSearchFile to \archive
Removed TJvFileTreeScan, TjclFileMaskComparator out of JvSysComp.pas

Others:
-------
* Moved JvLineEdit (w. TJvLineEdit and TJvLineCombo) to \archive:
  functionality can easily be simulated with the BevelXXXX properties in D6 (were these in D5?)
  If not in D5, better to add the BevelXXX properties implementation to the D5 code?
* Moved JvMessageBeep to \archive - call standard MessageBeep function instead
* Moved JvMessageBox to \archive - call standard MessageBox function instead
* Moved JvCreatedWith to \archive
* Moved JvWallpaper to \archive - use SetWallPaper in JvFunctions instead
* Moved JvScreenCapture to \archive - use CaptureScreen in JvFunctions instead
* Moved JvCDUtils to \archive - use OpenCDdrive, CloseCDDrive in JvFunctions instead
* Moved JvImageSplit to \archive - use GetRBitmap etc in JvFunctions instead
* Moved JvImageSurfTo to \archive - call OpenObject (in JvFunctions) or ShellExecute directly
* Moved JvImageMailTo to \archive - call OPenObject (in JvFunctions) or ShellExecute directly or use JvMail
* Moved JvInputBox to \archive - call InputQuery or InputBox directly
* Moved JvMailTo to \archive - use TJvHotLink instead
* Moved JvSurfTo to \archive - use TJvHotLink instead
* Moved JvFlashForm to \archive - call FlashWindow API directly
* Moved JvFlashApplication to \archive - call FlashWindow API directly
* Moved JvNoTitle to \archive - call HideFormCaption in JvFunctions instead
* Moved JvFormButton to \archive - duplicate of TJvCaptionButton
* Moved JvTransForm to \archive - duplicates TJvTransparentForm
* Moved JvOutlookPanel to \archive - duplicates JvOutlookbar and JvLookout
* Moved JvCPLLauncher to \archive - use LaunchCPL in JvFunctions instead
* Moved JvExecute to \archive - call Exec and ExecAndWait in JvFunctions instead
* Moved JvExitWindows to \archive - call ExitWindows directly
* Moved JvFatalAppExit to \archive - call FatalAppExit directly
* Moved JvDrivePresent to \archive - use DiskInDrive in JvFunctions instead
* Moved JvInstances to \archive - use FirstInstance in JvFunctions instead
* Moved JvTrayBar to \archive - use HideTraybar,ShowTraybar,ShowStartButton,HideStartButton in JvFunctions instead
* Moved JvYesNoPicker to \archive - build your own (2 radiobuttons, 1 bevel, 1 speedbutton and 1 label)
* Moved JvSafeMode to \archive - use MonitorOn, MonitorOff and LowPower in JvFunctions instead
* Moved JvSendKey to \archive - use SendKey in JvFunctions instead
* Moved JvAssociateExtension to \archive - use AssociateExtension in JvFunctions instead
* Moved JvRecentDocs to \archive - use GetRecentDocs and AddToRecentDocs in JvFunctions instead
* Moved JvRegion to \archive - use RegionFromBitmap in JvFunctions instead
  changed misc calls to TJvRegion to call RegionFromBitmap
* Moved JvRunOnStartup to \archive - JCL has functions for this (according to rom)
* Moved JvWindowsTitle to \archive - use GetVisibleWindows in JvFunctions instead
* Moved JvRegistryViewer to \archive - duplicates TJvRegistryTreeView
* Added original JvChrono to \archive
  Changed JvChrono ancestry to TObject, removed registration
* Added original JvComplex to \archive
  Replaced JvComplex with my own implementation of complex numbers (now named JvComplex),
  removed registration
* Added original JvScreenResolution to \archive
  Changed JvScreenResolution ancestry to TObject, removed registration
* Added original JvScreenCanvas to \archive
  Changed JvScreenCanvas ancestry to TObject, removed registration
* Added original JvCreateShortcut to \archive
  Changed JvCreateShortcut ancestry to TObject, removed registration
* Added original JvRLE to \archive
  Changed ancestry of JvRLE to TObject, removed registration
* Changed JvClock slightly: removed the predefined border  - set your own border using a panel or bevel or similar
* Renamed TJvImageBox2 to TJvImageSquare and changed icon name in JvP3Reg.dcr
* Moved TAppletFileProperty from jvDialogsReg to new unit JvAppletProperty
* Added TJvObjPickerDialog and JvObjSel from Marcel van Brakel
* Replaced thread classes in JvImageRotate, JvAppearingLabel, JvGradientCaption, JvScrolltext and JvStarField with
  thread code in a new unit, JvImageDrawThread.pas

TODO:
----
* buttons
* "format" edits (i.e. FloatEdit et al) - NOTE: might be new libs that have these too?

Other notes:
============
--> JvBMPListBox doesn't seem to work too well: resizing leaves "smears" both at DT and RT.
    No solution found. 
--> JvAutoSizeCompo should really be named JvAutoSizer or something: it resizes the components when the form changes size
    Don't know how useful this is now when we have Anchors and Constraints?
--> JvFormPlace should be named JvFormPosSave or something.
    It should also have a property to specify where in the registry to save (this is hard-coded now).
    Also, should be possible to rewrite to use only one for an entire application (now you need one for each form)
--> TJvFavoritesButton,TJvStartMenuBtn,TJvRecentMenuBtn and TJvControlPanel should really either be popup menu components or procedures
    returning a list of the items in each list
--> TJvControlPanel crashes on my computer (Win2k)
--> TJvControlPanel should be renamed TJvControlPanelButton 
--> TJvDirectories should be renamed TJvSystemDirectories


