Jvcl Structure

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


EditText of this page (last edited November 9, 2003) or FindPage with title or text search