Release Notes for JEDI VCL


Other release notes included in this distribution

 

 

Changes in this version

 

New folder structure

The files in JVCL is arranged according to a new folder structure. Previous versions of JVCL put all source files into one folder and all packages into another. The number of units in JVCL has forced us to divide this further in the current version. The current folder structure looks like this:

<JVCL>

  <root> - contains important documents, like this readme 

  \archive - old components (not installed) for those cases where you are unable to migrate to a newer version or replacement 

  \bin - output folder for binaries (from \examples)

  \common - contains common units, like API translations, INC files and the like

  \converter - DAT files for JVCLConvert (in \devtools\JVCLConvert)

  \dcu - output folder for dcu files (from \examples)

  \design - contains units only used at design-time

  \devtools - contains the sources for various useful tools

  \Dict - dictionary files for TJvSpellChecker

  \examples - all available demos

  \help - contains the help file(s) and additional documentation

  \images - original images and rc files for the palette icons

  \Includes - C/C++ include files for UIB

  \install - source scripts and utilities for the installer

  \lib

    \c5 - dcu and obj output for BCB5 packages

    \c6 - dcu and obj output for BCB6 packages

    \d5 - dcu output for Delphi 5 packages

    \d6 - dcu output for Delphi 6 packages

    \d7 - dcu output for Delphi 7 packages

    \d9 - dcu output for Delphi 2005 packages

    \d10 - dcu output for Delphi/C++Builder 2006 packages

    \d11 - dcu output for RAD Studio 2007 packages

  \locale - contains the DxGettext template and some ready to use translations

  \packages

    \bin - bootstrapping tools

    \c5 - packages for C++Builder 5

    \c6 - packages for C++Builder 6

    \c6per - modified packages for C++Builder 6 Personal Edition

    \d5 - packages for Delphi 5

    \d5std - modified packages for Delphi 5 Standard

    \d6 - packages for Delphi 6

    \d6per - modified packages for Delphi 6 Personal Edition

    \d7 - packages for Delphi 7

    \d7per - modified packages for Delphi 7 Personal Edition

    \d9 - packages for Delphi 2005

    \d9per - modified packages for Delphi 2005 Personal Edition

    \d10 - packages for Delphi/C++Builder 2006

    \d11 - packages for RAD Studio 2007

    \xml - Source xml files for the packages. All the packages are generated from these files.

  \Resources - contains res, dcr and other resource files used at either run or design time

  \run - contains units used at run-time

 

Depending on which distribution of JVCL you download, some folders and files might not be created on your system.

 

Theming

Several visual JVCL controls supports XP theming (more will likely be added subsequently). Theming is automatically activated for users of Delphi 7 (and above) and you don't need to do anything special in this case. For earlier versions of Delphi (5 and 6), you need to download Mike Lischke's ThemeManager package and configure the JVCL theming support manually. To activate JVCL theming, proceed as follows:


If you want theming support in C++ Builder 5 and 6, you will need to manually create the appropriate DCP file for the installation to succeed instead of the steps two and three in the above list. Here are the steps for BCB5, thanks to Carmelo Viavattene :


Theming should now be activated for those JVCL controls that supports it. Note that you still need to be running on Windows XP with a manifest file for your project to see any theming.

Localization

All strings that get displayed to the user are stored in resource strings. If you want the JVCL to display those strings in other languages, you should use DxGettext as this is the only localization method supported by the JVCL group. You must turn on the use of DxGettext in jvcl.inc and recompile the JVCL packages for the support to be complete. Please refer to the localization documentation for more details on this topic.

CLX support

CLX support was dropped in Version 3.33

 

Available distributions

The JVCL is available in three different distributions. These are:

 

Each of the "stand-alone" packages are also available as separate distributions (see USEJVCL below for a list of stand-alone packages). In case we get enough requests, we might also provide each package as a separate distribution.

 

New package layout

Previous versions of JVCL had one run-time and one design-time package for each version of supported compilers (i.e one pair for Delphi 5, another pair for Delphi 6 etc). The current JVCL, however, is split into a larger set of smaller packages, where each package contains logically related components. Each run-time package also has a matching design-time package with the registration code and any design-time editors required by the run-time package. The following packages are currently available:

Package Description Contains Required JVCL packages (packages in parenthesisses are required by the design-time package)
JvCore Contains the core units used by a large part of the JVCL

Core support units

TJvJVCLAboutComponent

TJvContextProvider

TJvColorProvider

TJvAppIniStore

TJvAppRegistryStore

TJvLookupAutoComplete

none
JvSystem System related components

TJvSHFileOperation

TJvChangeNotify

TJvDragDrop

TJvDropTarget

TJvHidDeviceController

TJvNTEventLog

TJvScreenSaver

TJvDeviceChanged

TJvJoystick

TJvSoundControl

TJvKeyboardStates

TJvDirectories

TJvSystemColors

TJvAppDdeCmd

TJvPerfStat95

TJvSimpleXML

TJvXMLDatabase

TJvRas32

TJvCommStatus

TJvFormStorage

TJvSearchFiles

TJvMRUList

TJvMRUManager

TJvShellHook

TJvWindowHook

TJvTimer

TJvThread

TJvThreadTimer

TJvTimerList

TJvAppInstances

JvCore
JvStdCtrls "Standard" or enhanced standard controls

TJvMainMenu

TJvPopupMenu

TJvSystemPopup

TJvCalculator

TJvBrowseForFolderDialog

TJvBitBtn

TJvImgBtn

TJvCheckBox

TJvRadioButton

TJvRadioGroup

TJvUpDown

TJvDomainUpDown

TJvControlPanelButton

TJvStartMenuButton

TJvRecentMenuButton

TJvFavoritesButton

TJvEdit

TJvMemo

TJvRichEdit

TJvCheckedMaskEdit

TJvMaskEdit

TJvHotKey

TJvCalcEdit

TJvComboEdit

TJvFilenameEdit

TJvDirectoryEdit

TJvDateEdit

TJvSpinEdit

TJvIPAddress

TJvImage

TJvPageControl

TJvProgressBar

TJvGradientProgressBar

TJvStatusBar

TJvTabControl

TJvToolBar 3.

TJvControlBar

TJvCoolBar

TJvGroupBox

TJvHeaderControl

TJvPanel

TJvBevel

TJvLabel

TJvStaticText

TJvComboBox

TJvListBox

TJvCheckListBox

TJvTreeView

TJvListView

TJvCheckTreeView

TJvColorComboBox

TJvFontComboBox

TJvDateTimePicker

TJvMonthCalendar

TJvDrawGrid

TJvStringGrid

TJvScrollBox

TJvTrackBar

TJvxSlider

TJvImageList

JvCore, JvSystem
JvCtrls Visual controls

TJvTransparentButton

TJvTransparentButton2

TJvArrowButton

TJvCaptionButton

TJvColorButton

TJvHTButton

TJvTransLED

TJvSpacer

TJvSwitch

TJvSpeedBar

TJvCaptionPanel

TJvItemsPanel

TJvMovableBevel

TJvRollOut

TJvFooter

TJvGroupHeader

TJvComponentPanel

TJvBehaviorLabel

TJvInstallLabel

TJvHTLabel

TJvWinampLabel

TJvImageComboBox

TJvImageListBox

TJvHTListBox

TJvHTComboBox

TJvUninstallComboBox

TJvUninstallListBox

TJvDriveCombo

TJvDriveList

TJvFileListBox

TJvDirectoryListBox

TJvRegistryTreeView

TJvPlaylist

TJvScrollMax

TJvaScrollText

TJvContentScroller

TJvPageScroller

TJvScrollingWindow

TJvScrollText

TJvSplitter

TJvxSplitter

TJvSyncSplitter

TJvClock

TJvZoom

TJvDice

TJvHint

JvCore, JvStdCtrls
JvCmp Non-visual components

TJvAlarms

TJvConverter

TJvDataEmbedded

TJvCreateProcess

TJvEnterAsTab

TJvMergeManager

TJvPageManager

TJvPatchFile

TJvProfiler

TJvStrHolder

TJvTimeLimit

TJvWinHelp

TJvTranslator

TJvPrint

TJvEasterEgg

JvCore, JvSystem (JvStdCtrls)
JvCustom Custom controls and "advanced" components

TJvValidateEdit

TJvTrayIcon

TJvScheduledEvents

TJvBalloonHint

TJvEditor

TJvHLEditor

TJvHLEdPropDlg

TJvGammaPanel

TJvOutlookBar

TJvLookout

TJvExpress

TJvLookOutButton

TJvExpressButton

TJvRadioControl

TJvLinkLabel

TJvInspector

TJvInspectorBorlandPainter

TJvInspectorDotNETPainter

TJvThumbImage

TJvTimeLine

TJvTMTimeLine

JvCore, JvCtrls, JvSystem,
JvDlgs Dialog components

TJvSelectDirectory

TJvOpenDialog

TJvSaveDialog

TJvTipOfDay

TJvFindReplace

TJvDSADialog

TJvPageSetupDialog

TJvPageSetupTitledDialog

TJvConnectNetwork

TJvDisconnectNetwork

TJvAddPrinterDialog

TJvFindFilesDialog

TJvFormatDriveDialog

TJvColorDialog

TJvOrganizeFavoritesDialog

TJvComputerNameDialog

TJvAppletDialog

TJvChangeIconDialog

TJvShellAboutDialog

TJvRunDialog

TJvObjectPropertiesDialog

TJvNewLinkDialog

TJvAddHardwareDialog

TJvOpenWithDialog

TJvDiskFullDialog

TJvExitWindowsDialog

TJvOutOfMemoryDialog

TJvObjectPickerDialog

TJvDualListDialog

TJvImageDlg

TJvLoginDialog

TJvProgressDialog

TJvProgressComponent

TJvDiskPrompt

TJvCopyError

TJvDeleteError

TJvRenameError

JvCore, JvSystem, JvStdCtrls
JvCrypt Encryption and Compression components

TJvCabFile

TJvZLibMultiple

TJvGenetic

TJvCaesarCipher

TJvXorCipher

TJvVignereCipher

TJvSerialMaker

JvCore
JvMM Multimedia and graphic components

TJvAnimate

TJvAnimatedImage

TJvBmpAnimator

TJvGIFAnimator

TJvGradient

TJvGradientHeaderPanel

TJvIconList

TJvID3v1 and TJvID3v2

TJvImageRotate

TJvImageTransform

TJvImageWindow

TJvImageSquare

TJvPicClip

TJvSlider

TJvSpecialImage

TJvSpecialProgress

TJvStarfield

TJvWaitingGradient

TJvWaitingProgress

TJvWavePlayer

JvCore, JvCmp, JvCtrls, JvSystem
JvHMI HMI Components TJvLED

TJvSegmentedLEDDisplay

TJvDialButton

JvCore
JvNet Network and Internet technology components

TJvFtpGrabber

TJvHttpGrabber

TJvMultiHttpGrabber

TJvMail

TJvHtmlParser

TJvStrToHtml

TJvStringListToHtml

TJvFormToHtml

TJvRichEditToHtml

TJvRgbToHtml

JvCore, (JvStdCtrls)
JvAppFrm Application and Form related components

TJvAppEvents

TJvAppAnimatedIcon

TJvFormAnimatedIcon

TJvApplicationHotKey

TJvTransparentForm

TJvFormAnimation

TJvFormWallpaper

TJvFormMagnet

TJvFormAutoSize

TJvGradientCaption

JvCore, JvSystem, JvStdCtrls, (JvCmp, JvMM, JvCtrls)
JvDB 5.
Generic DB access and DB controls

TJvCsvDataset

TJvMemoryData

TJvDBDatePickerEdit

TJvDBProgressBar

TJvDBRichEdit

TJvDBSpinEdit

TJvDBLookupList

TJvDBLookupCombo

TJvDBLookupEdit

TJvDBRadioPanel

TJvDBCombobox

TJvDBTreeview

TJvDBTreeviewCombo

TJvDBLookupTreview

TJvDBGrid

TJvDBComboEdit

TJvDBDateEdit

TJvDBCalcEdit

TJvDBStatusLabel

TJvHTDBLabel

TJvDBCheckBox

JvCore, JvStdCtrls,
JvBDE 5.
BDE specific components and controls

TJvDBFilter

TJvDBIndexCombo

TJvDatabaseItems

TJvTableItems

TJvDBMove

TJvDBProgress

TJvQBEQuery

TJvDBSecurity

TJvBDEMemoryTable

TJvQuery

TJvBDESQLScript

JvCore, JvDB, JvDlgs
JvInterpreter Components and units related to JvInterpreter

TJvInterpreter

TJvInterpreterFm

JvCore, JvCtrls, JvCustom
JvBands Units for band object development Band object wizard JvCore
JvPlugin JvPlugin related components

TJvPlugin

TJvPluginManager

Plugin wizard

JvCore
JvJans Jans Delphi Components

TJvMarkupLabel

TJvMarkupViewer

TJvSAL

TJvSticker

TJvSALCore

TJvSALMath

TJvYearGrid

TJvAirBrush

TJvTracker

TJvGridFilter

TJvGridPrinter

TJvJanTreeview

TJvPaintFX

TJvDrawImage

TJvArrayButton

TJvForthScript

TJvTurtle

TJvBitmapButton

TJvSpeller

TJvShapedButton

TJvSimScope

TJvSimIndicator

TJvSimPID

TJvSimPIDLinker

TJvSimConnector

TJvLogic

TJvSimButton

TJvSimLight

TJvSimLogicBox

TJvSimReverse

TJvCSVBase

TJvCSVEdit

TJvCSVComboBox

TJvCSVCheckBox

TJvCSVNavigator

JvCore
JvGlobus Globus Delphi Components

TJvgExportDBETable 5.

TJvgDBNAvigator

TJvgPrintCrossTable

TJvgDBGrid 5.

TJvgVertDBSGrid 5.

TJvgSysInfo

TJvgMaskEdit

TJvgBevel

TJvgBitBtn

TJvgGraphicButton

TJvgGraph

TJvgTreeView

TJvgCheckTreeView

TJvgSplitter

TJvgShadow

TJvgShade

TJvgButton

TJvgImageGroup

TJvgProgress

TJvgTransparentMemo

TJvgWinMask

TJvgGroupBox

TJvgBitmapImage

TJvgListBox

TJvgCheckListBox

TJvgAskListBox

TJvgScrollBox

TJvgStringGrid

TJvgSpeedButton

TJvgWizardHeader

TJvgCaption

TJvgGridHeaderControl

TJvgCheckBox

TJvgRuler

TJvgPageControl

TJvgTabControl

TJvgMailSlotServer

TJvgMailSlotClient

TJvgLabel

TJvgFlyingText

TJvgDigits

TJvgStaticText

TJvgHoleShape

TJvgExportExcel

TJvgExportHTML

TJvgHelpPanel

TJvgExportXML

TJvgXMLSerializer

TJvgLanguageLoader

TJvgExceptionHandler

TJvgJumpingComponent

TJvgStringContainer

TJvgSysRequirements

TJvg3DColors

TJvgHint

TJvginspectorGrid

TJvgReport

TJvgReportParamsEditor

TJvgLogicProducer

TJvgSmallFontsDefence

TJvgMultipleResources

TJvgSingleInstance

TJvgFixFont

TJvgComponentDescription

TJvgQRLabel 5.

TJvgQRDBText 5.

TJvgMyQRPreview 5.

JvCore, JvSystem, JvStdCtrls, (JvCtrls, JvCustom, JvDlgs, JvMM)
JvPrintPreview Print Preview Components

TJvPreviewControl

TJvPreviewRenderRichEdit

TJvPreviewRenderStrings

TJvPreviewRenderGraphics

TJvPreviewRenderControl

TJvPreviewPrinter

JvCore
JvPageComps Page style components

TJvPageList

TJvPageListTreeView

TJvSettingsTreeView

JvCore
JvValidators Validator and Error Indicator components

TJvValidators

TJvValidationSummary

TJvErrorIndicator

JvCore
JvUIB UIB (Unified Interbase) Components

TJvUIBDatabase

TJvUIBTransaction

TJvUIBQuery

TJvUIBBackup

TJvUIBRestore

JvCore 4.
JvWizard Wizard component and RouteMaps formerly known as "K Wizard"

TJvWizard

TJvWizardRouteMapNodes

TJvWizardRouteMapSteps

JvCore 4.
JvTimeFramework Set of PIM components formerly known as UIL Time Framework 2.0 TJvTFAlarm

TJvTFScheduleManager

TJvTFGlanceTextViewer

TJvTFMonths

TJvTFWeeks

TJvTFDays

TJvTFUniversalPrinter

TJvTFDaysPrinter

JvCore 4.
JvManagedThreads Thread components (for version 6 and newer only)
TJvMtManager

TJvMtThread

TJvMtThreadToVCL

TJvMtVCLToThread

TJvMtThreadToThread

TJvMtSection

TJvMtCountingSection

TJvMtMonitorSection

JvCore
JvDotNetCtrls DotNet style components (Do not require the .Net framework to be installed)
TJvDotNetCheckListBox

TJvDotNetEdit

TJvDotNetHotKey

TJvDotNetListBox

TJvDotNetListView

TJvDotNetMaskEdit

TJvDotNetMemo

TJvDotNetRichEdit

TJvDotNetScrollBox

TJvDotNetTreeView

TJvDotNetDBEdit 5.

TJvDotNetDBListBox 5.

TJvDotNetDBLookupListBox 5.

TJvDotNetDBMemo 5.

TJvDotNetDBRichEdit 5.


JvDocking Docking components TJvDockServer

TJvDockClient

TJvDockDelphiStyle

TJvDockVCStyle

TJvDockVIDStyle

TJvDockVSNetStyle

JvCore 4.
JvXPCtrls XP/Office XP style controls (Do not require to run on XP to display correct look)
TJvXPStyleManager

TJvXPBar

TJvXPContainer

TJvXPButton

TJvXPToolButton

TJvXPCheckBox

TJvXPProgressBar


1. Not available in C++ Builder 6
2. Not available in C++ Builder 5
3. Limited functionality in Delphi 5
4. If USEJVCL is defined (it is by default). If you change the definition of USEJVCL, you MUST regenerate the packages using the PackageGenerator available in $(JVCL)\devtools. The installer will do that for you.
5. Not available in Standard and Personal versions.

New components added

 

The following new components and libraries has been added since JVCL 2.10:

 

Components deprecated, renamed, removed or changed

Below follows a list of components that have been removed, renamed or are deprecated since JVCL 2.10 (i.e they will most likely disappear in the near future).

Removed Components

TJvBreatheSkin, TJvCommandEdit, TJvCoupler, TJvCPUUsage, TJvHighLighter, TJvMemoryInfos, TJvMousePositionner, TJvNagScreen, TJvPerforated, TJvPopupMemo, TJvAutoSave, TJvRegAuto, TJvCurrencyEdit, TJvxCurrencyEdit, TJvFloatEdit, TJvFloatEdit2, TJvButton

Renamed Components

The following units and classes have been renamed in this version:

 

Previous New
JvTMTL JvTMTimeLine
JvAutoSizeCompo JvFormAutoSize
JvGrdCpt JvGradientCaption
JvPlacemnt JvFormPlacement
JvVerInf JvVersionInfo
JvUCB JvUninstallCtrls
JvTimerLst JvTimerList
JvSysComp JvCreateProcess
JvObjStr JvObjectStrings
JvMrgMngr JvMergeManager
JvMouseTimerU JvMouseTimer
JvFDualList JvDualListForm
JvExcptDlg JvExceptionForm
JvDBSecur JvDBSecurity
JvDBRichEd JvDBRichEdit
JvDBPrgrss JvDBProgress
JvDBExcpt JvDBExceptionForm
JvColorBtn JvColorButton
JvCntScr JvContentScroller
JvCmdEdit JvCommandEdit
JvChPswDlg JvCheckPasswordForm
JvOLBar JvOutlookBar
JvSbSetup JvSpeedbarSetupForm
JvRegTV JvRegistryTreeview
JvPrgrss JvProgressUtils
JvPluginMan JvPluginManager
JvQbnddlg JvQueryParamsForm
JvRadioCtl JvRadioControl
JvRecentMenuBtn JvRecentMenuButton
JvRemLog JvRemoteLogin
JvSHFileOp JvSHFileOperation
JvSplshWnd JvSplashWindow
JvSQLS JvSQLScript
JvStartMenuBtn JvStartMenuButton
JvStrHlder JvStringHolder
JvRichEd JvRichEdit
JvControlPanel JvControlPanelButton
JvClipMon JvClipboardMonitor
JvClipView JvClipboardViewer
JvDataConv JvConverter
JvPageMngr JvPageManager
JvBmpAnim JvBmpAnimator
JvClipIcon JvIconClipboardUtils
JvArrowBtn JvArrowButton
JvMemDS JvMemoryDataset
JvMagnet JvFormMagnet
JvDlg JvProgressForm
JvCurrEdit JvBaseEdits
JvDBComb JvDBCombobox
JvDBCtrl JvDBControls
JvHLEdPropDlg JvHLEditorPropertyForm
JvIcoList JvIconList
JvPropAutoSave JvAutoSave
JvTransBtn JvTransparentButton
JvxLogin JvLoginForm
JvxLoginDlg JvDBLoginDialog
JvProps JvPropsStorage
JvxAnimate JvAnimatedImage
JvMRUList JvMRUManager
JvMRU JvMRUList
JvObjPickerComp JvObjectPickerDialog
TJvControlPanel TJvControlPanelButton
TJvStartMenuBtn TJvStartMenuButton
TJvRecentMenuBtn TJvRecentMenuButton
JvAppletProperty JvAppletEditor
JvBehaviorLabelProperty JvBehaviorLabelEditor
JvChNtfyProperty JvChangeNotifyEditor
JvTimLstEd JvTimerListForm
JvTipOfDayProp JvTipOfDayEditor
JvStrLEdit JvStringsForm
JvSelDSFrm JvSelectDataSetForm
JvPresrDsn JvFormPropertiesForm
JvPluginParams JvPluginParamsForm
JvPictEdit JvPictureEditForm
JvPgMngrEd JvPageManagerForm
JvOutEdit JvLookoutEditor
JvOLBEditor JvOutlookBarForm
JvMinMaxEd JvMinMaxForm
JvJVCLAboutProperty JvJVCLAboutEditor
JvImagPrvw JvImagePreviewForm
JvID3v2Define JvID3v2DefineForm
JvIcoLEdit JvIconListForm
JvHTHintEditor JvHTHintForm
JvGradEdit JvGradientCaptionForm
JvDirFrm JvDirectoryListForm
JvSbEdit JvSpeedbarForm
JvTimeLineEdit JvTimeLineEditor
JvCheckItm JvCheckedItemsForm
JvaDsgn JvDesignerUtils
JvDateTimeDlg JvDateTimeForm
JvCsvDataDsgn JvCsvDataEditor
JvCsvDataDefStrDsgn JvCsvDataForm
JvErrProvider JvErrorIndicator
JvRadioControl JvDialButton
Deprecated Components

TJvControlPanelButton, TJvStartMenuButton, TJvFavoritesButton, TJvRecentMenuButton

Changed Components

TJvComputerInfo has been changed from TComponent to TObject. This change was done to promote safety since there was a risk that the streaming of published properties could modify important registry values on the end-users computer. To continue using TJvComputerInfo, open the form where it is located and click the "Ignore All" button when Delphi/BCB reports that TJvComputerInfo cannot be found. Add a private variable of type TJvComputerInfo (with the same name as the former TJvComputerInfo component) to the form and create the class dynamically. You should now be able to use the class without any adverse side-effects. For more details, see the comments at the top of JvComputerInfo.pas.

 

Naming convention changed

 

To keep JVCL consistent, we have adopted a new naming standard. The naming standard in JVCL affects both classes, types and unit names. The following section explains the new naming convention enforced in JVCL:

 

General

 

Using the word "Form" in filenames

All forms (units with DFM's) are suffixed with the word "Form" regardless of whether they contain a dialog or a form (i.e JvDualListForm.pas). The word "Form" can also be used as a prefix if the component in the unit is acting upon a form without being one itself (i.e JvFormMagnet.pas)

 

Using the word "Dialog" in filenames

The word "Dialog" in a unit name signifies that the unit contains a component that has no UI at designtime but shows a form or dialog at run time (i.e JvObjectPickerDialog.pas). At the moment, "Dlg" and "Dlgs" are accepted but their use is discouraged.

 

Using the words "Const" and "Consts" in filenames

The words "Const" and "Consts" are only used in units that contains just type, resourcestring and const declarations and no code (i.e JvConsts.pas).

 

Using the words "Util" and "Utils" in filenames

The word "Util" and "Utils" are only used in units that contains support routines and classes of more general use (i.e JvJVCLUtils.pas). Classes in util type units should never be installable.

 

Design time editors

Units containing designtime editors should have the same base name as the component they are primarily used to edit and an "Editor" or "Editors" suffix, i.e a property editor unit for the TJvBehaviorLabel should be called either "JvBehaviorLabelEditor" or "JvBehaviorLabelEditors".

 

The base name for the unit is controlled by the name of the component the editor(s) were meant for: if all editors are for the same component, we use the same rule as for a single editor (the plural form), if the unit contains generic editors, we name the unit either according to the editors "family" ("JvDBEditors" contains design editors for DB related components) or according to it's general data type (i.e "JvDateEditors" contains editors used to edit date related properties).

 

It doesn't matter (name wise) if a unit contains property, component or any other types of editor. They are all named the same way. If a design editor is implemented in the same unit as a form, the unit is named with a "Form" suffix (see rule above for using the word "Form" in filenames). The reasoning behind this is simple: if a split of the unit is to be done in the future (which is likely), it is the design editor that will be moved to a new unit, not the form. The new unit for the editor will then get an appropriate name with a "Editor" suffix but the name of the form will not change.

 

Adding design editors to form units is discouraged. We try to keep editors in their own unit, preferably one editor per unit. Editor units should not contain their own Register procedure. The Register procedure should only be present in specific "Reg" files for a package (see below). This minimizes confusion and clutter and maximizes reuse, loose coupling and simplifies maintenance and future restructuring.

 

Registration units

Each design package have it's own registration unit with a Register procedure. The unit is named with the same base name as the package but with a "Reg" suffix (i.e the reg file for the "JvCore" design package is named "JvCoreReg.pas"). The reg file only contains registrations for the components and design editors. Design editors and other support code is not added to the reg file unless absolutely necessary.

 

A matching dcr file is also included in the \resources folder. The dcr file always have the same base name as the reg file but with a dcr file extension (i.e the palette icons for components registered in JvCoreReg.pas is in \resources\JvCoreReg.dcr).

 

Palette images color coding

All component icons have a common background and an upper case yellow "J" in a rectangle in the bottom right corner of the image. The background color of the rectangle identifies the type of component the icon represent. Currently, we use the following color codes:

Blue - Visual components

Green - Non-visual components

Purple - Database components (visual and non-visual)

Maroon - data provider components (implements one or more of the IJvDataProvider interfaces)

Navy - data consumers (data provider aware components)

 

Getting involved in JVCL development

 

If you want to help out making JVCL better or bigger or just plain cooler, there are several ways in which you can help out.  Here are some of the things we need your help on:

 

 

Donate components and other source code

 

JVCL accepts donations from developers as long as the components fulfill the requirements set up by the JEDI and JVCL teams. To read more about these requirements, visit the page http://jvcl.sourceforge.net/donate.htm

 

Donate time writing help

 

You can also donate your time by writing help for the components already in JVCL. We currently use Doc-o-Matic to create the finished help files but the actual help sources are plain text files in a simple to understand format. We can provide you with auto-generated templates with all classes, properties, types etc already inserted. The "only" thing left to do is fill in the actual help text for the help items. If you are interested in writing help, contact us.

 

Donate time writing demos

 

One of the best ways of getting to know a new component is to see the source code of a demo using it and although we have a lot of demos in JVCL, we still need more and some of the existing demos needs to be "beefed up". Many developers create test apps to try out a new component before putting it to use in their real projects so if you have such a demo or is interested in making more full blown demos for JVCL, contact us.

 

Donate time fixing bugs

 

If you want to help fix bugs in JVCL, go to Mantis and check the bug reports there. You can post replies as well as fixes directly in the bug report. One of the JVCL developers will pick up the report/fix and update the CVS repository if the fix is satisfactory. If you report and fix a lot of bugs, you might even get developer access to CVS so you can update the JVCL files directly.

 

Getting in touch with JVCL developers and other users

 

You can get in touch with the JVCL team and/or other JVCL users in one of the following manners: