Well my apologies for the delay between blog posts – we have had quite a bit of local client work and we are also doing a fair bit of redesign work as we get the new product ready.
We have also started using ESBDevLib in our in-house products so that we can start testing them better and to help us prioritise what “bits” we need to convert.
So earlier this week we finalised our new SpinEdits 🙂
In ESBPCS for VCL, our SpinEdits where just another Compound Components – basically a panel that contained an Edit and two buttons. However, we had a few requests asking that our SpinEdits be a bit more like the one from the Delphi Sample that Embarcadero supplies. Now given that we have included an ESBDevLib version of the Delphi ButtonedEdit, having the Spin Edit Buttons inside the Edit does make more sense for ESBDevLib.
So I spent some time analysing what was done in the Delphi TSpinEdit as well as looking at the strengths of our TESBIntSpinEdit from ESBPCS.
The first new component was TEDLSpinButton – which is a component with an up and down button and has been modelled on the Delphi TSpinButton – however we don’t use a Timer for Repeatable Clicks, rather like our ESBPCS Speed Button we use GetTickCount from the Windows API. Now this control has the other features of ESBDevLib visual controls like Right and Bottom properties.
So to produce our TEDLSpinEdit we take a TEDLIntEdit and embed the TEDLSpinButton inside it. We also add a couple of extra events that the Delphi SpinEdit doesn’t have like OnUpClick and OnDownClick as well as enhanced Keyboard support for PgUp / PgDn / Ctrl-PgUp / Ctrl-PgDn – and it seems to be working well 🙂 Plus because of our Integer Edit we have UICtrl and Formatter support.
So we will add TEDLFloatSpinEdit as well as the Calendar specific ones of TEDLMonthSpinEdit and TEDLDOWSpinEdit – plus rather than just having Labelled Edits, we are using similar code to that supplied with the Delphi TLabeledEdit to add a Label version of most visual controls.
One of the big advantages of the redesign is that I think we are getting a far more consistent architecture – plus we are making far better uses of things like Interfaces, Generics, etc. However the downside is that it is taking longer than we hoped – especially as we are documenting as we go and trying to add adequate unit testing also. Our current plan is that owners of ESBPCS for VCL “Full Version” will have an early Beta to start playing with by mid to late July 2013 (but no guarantees).