This is a possible structure for
JediVcl 3.0, and was proposed by Peter Thornqvist:
Just to get you all started thinking about this and come up with your own
suggestions, here's some of mine:
Packages (one each for D5-D7,BCB5-BCB6):
JvCore - RT package with utility units and core classes (
JvFunctions,
JvComponent et al)
JvStdCtrls - enhancements to standard components (labels, edits, listboxes,
menus), RT + DT
JvWin32 - enhancements to common controls (listview, treeview), RT + DT
JvNet - internet related, RT + DT
JvDB - DB related, non-visual (
JvMemoryData), RT + DT
JvDbCtrls - DB related, visual (JvDBDatePicker), RT + DT
JvBDE - BDE related (
JvQuery), RT + DT
JvDialogs - dialogs (standard and win special), RT + DT
JvSystem - system related (JvAppDDECmd,
JvTimerList,
JvCreateProcess), RT + DT
JvControls - visual controls not fitting for
JvStdCtrls or JvWin32(
JvFontComboBox,
JvColorComboBox), RT + DT
JvComponents - non-visual controls not fitting in the other packages(JvMRUList,
JvScreenSaver), RT + DT
JvCustomCtrls - original custom controls, not extending an existing control(
JvLinkLabel,
JvInspector,
JvTimeLine,
JvLookout), RT + DT
JvMMedia - multimedia components (
JvStarField, JvId3v1), RT + DT
JvUtils - stuff seldom used (
JvPatchFile,
JvEasterEgg), RT + DT
JvCrypt - encryption and compression (
JvVignere,
JvCabFile), RT + DT
JvBeginner - components that are simple wrappers for API calls and/or with little actual code (
JvSelectDirectory,
JvDirectories,
JvSystemColors), RT +
DT
A suggestion from me (with Roberts comments) about what components to merge and what to keep can be found here:
http://cvs.jvcl.sourceforge.net/cgi-bin/viewcvs.cgi/jvcl/jvcl/restructure_proposal.txt
Additionally, I propose that the different edits (integeredit, yearedit etc) should be merged into one (preferably the standard
JvEdit with additional
properties for setting the accepted format), the different labels should be merged into one (preferably the standard
JvLabel) except for
JvLinkLabel
which is too special to be merged (I love that component!), the different grids should be merged into one, the different buttons should be merged into
a selected few (
JvBitBtn,
JvSpeedButton). We could probably also remove some of the listboxes, buttons, dialogs and grids.
Please add your comments below.
UPDATE 2003-06-05:
There has been some changes since this proposal was published. Below is an extract of what's been merged (taken from the changelog). Note that there are other things that have been fixed and updated as well, but I think this is pretty much all that has structurally changed:
2003-05-19
-
JvFormPlace moved to \archive - Use TJvFormPlacement from
JvPlacemnt.pas // remko bonte
2003-04-05
- Extracted property and design editors from various XXXReg files into their own units (this is to simplify a possible future split of packages). Several new units added. // peter3
- Merged generic (i.e not JVCL specific) property and component editors into
JvDsgnEditors, JvDBEditors and JvBDEEditors // peter3
-
JvDsgn, JvLCProperty and JVCLMiscal moved to \archive - no longer needed // peter3
- Renamed
ScheduleEditor.pas to
JvScheduleEditor.pas // peter3
2003-03-30
- Merged TJvClipBoardViewer and TJvxClipboardViewer into TJvxClipboardViewer. Renamed TJvxClipboardViewer to TJvClipboardViewer. Moved
JvClipboardViewer.pas to \archive // peter3
- Moved
JvExchListBoxes.pas and
JvFormLists.pas to \archive - duplicates functionality in
JvDualList.pas and JvFDualList.pas //peter3
- Merged TJvSerialDlg, TJvLoginDlg and TJvPasswordForm into TJvLoginDialog. Added
PasswordChar property to TJvLoginDialog. Moved
JvSerialDlg,
JvLoginDlg,
JvFormPass,
JvFormLogin,
JvFormLists and
JvFormSerial to \archive // peter3
- Moved
JvNotify.pas to \archive - TJvFolderMonitor duplicates TJvChangeNotify. // peter3
- Moved
JvProgressDlg.pas to \archive - TJvProgressDlg duplicates TJvProgressForm. // peter3
- Merged TJvMousePanel and TJvSizeablePanel into
JvPanel. Moved
JvSizeablePanel.pas and
JvMousePanel.pas to \archive // peter3
2003-03-26
- Merged
JvMultilineButton and
JvOneSizeFitsAllButton into
JvButton. TJvButton renamed to TJvCustomButton. Removed registration for TJvButton. TJvImgBtn now derives from TJvCustomButton. // peter3
- Moved
JvObserverLabel.pas,
JvObserverMessages.pas and
JvObservibleCheckBox.pas to \archive. This seems to be a "proof of concept" with little real value. // peter3
- Merged TJvSpeedButton and TJvxSpeedButton. Renamed TJvxSpeedButton to TJvSpeedButton. Moved
JvSpeedButton.pas to \archive // peter3
- TJSyncSplitter now derives from TJvSplitter - set Partner <> nil to activate sync mode. Removed registration for TJvSplitter // peter3
2003-03-25
- Merged TJvDrawGrid and TJvButtonDrawGrid into TJvxDrawGrid (added
DrawButtons property to TJvxDrawGrid for TJvButtonDrawGrid functionality). Renamed TJvxDrawGrid to TJvDrawGrid. Moved
JvDrawGrid.pas and
JvButtonDrawGrid.pas to \archive. // peter3
- Merged TJvxLabel into TJvLabel. Removed registration of TJvxLabel. NOTE: default for
ShadowSize has changed to 0 (was 1). // peter3
- Moved
JvApplication.pas to \archive: TJvApplication has only some of the functionality in TJvAppEvents (in
JvAppEvent.pas) // peter3
2003-03-24
- Merged
JvMultilineListBox,
JvReorderListBox,
JvTextListBox, JvBMPListBox into
JvListBox, updated examples, moved
JvBmpListBox.pas,
JvReorderListBox.pas and
JvMultiLineListbox.pas to \archive // peter3
- Merged
JvHotLink and
JvAngelLabel into
JvLabel
- Merged
JvAppearingLabel,
JvBlinkingLabel,
JvBouncingLabel,
JvRealLabel and
JvSpecialLabel into
JvBehaviorLabel. Use Behavior property to control what label to simulate. // peter3
- Removed
JvReversedLabel - use (new)
JvLabel with Angle set to 180 to simulate same behavior
- Merged TJvTransparentButton and TJvTransparentButton2 into one unit. Now derives from common ancestor in
JvButton. Moved JvTransBtn2.pas to \archive
- Moved
JvHotKeyEx to \archive - duplicates
JvHotKey functionality // peter3
2003-03-23
- Replaced TJvFloatEdit, TJvFloatEdit2, TJvCurrencyEdit, TJvxCurrencyEdit, TJvIntegerEdit and TJvYearEdit with TJvValidateEdit.
JvFloatEdit.pas and
JvTypedEdit.pas moved to \archive, examples updated. // peter3
- Merged TJvRichEdit with TJvxRichEdit. TJvxRichEdit renamed to TJvRichEdit.
JvRichEdit.pas moved to \archive. // roko, peter3
- Removed TJvOpenDialog2000 and TJvSaveDialog2000 from registration in JVCLReg.pas: use TJvOpenDialog and TJvSaveDialog instead. They contain a better implementation of the same things as the xxx2000 versions. // peter3
- Added
EnablePopupChange property to TJvCustomCalcEdit (in
JvCurrEdit.pas). Set it to true to get notified when changes are done in the popup calculator // peter3