Jump to content
Charlie Heaps

Can VCL, TMS, DeveloperExpress styles be combined?

Recommended Posts

Hi all! 

am trying to update an older Delphi desktop/VCL/Windows application to use High DPI and themes, but my head is spinning trying to understand all the pieces of the puzzle. I currently use quite a few different components in the app, including Raize/Konopka VCL controls, TMS grid components, TeeChart, MapWinGIS ActiveX mapping controls and others. I also use the Toolbar 2000 controls for menus, toolbars and popups.

I would like to rationalize things, replace Toolbar 20000, and am considering replacing the menus/toolbars with Ribbon controls. I've been looking at both the Developer Express and TMS menus and ribbon controls as well as the built in Delphi menus/toolbars, but I am confused about how/whether the pieces fit together.

The Developer Express and TMS controls seem very well put together but they don't seem to work with Delphi's own VCL styles (Update TMS says its controls DO also support Delphi styles). The Raize components seem to work with VCL styles but are not high DPI aware (yet - not clear if Embarcadero is dropping them). I am not clear if the separate styles implemented in the Developer Express and TMS controls can be integrated with the Delphi VCL styles (e.g. I would not want users to deal with all this complexity).
 

Can someone offer some advice on how to move forward or offer pointers to some online resources?
 

Thanks in advance for any thoughts and advice!

Share this post


Link to post

You can use the components together, and you can develop comparable styles, but the style classes in different component packages -- and in Delphi -- are different to one another.

Share this post


Link to post

Developer Express styles are a whole different beast. They wrote them before Delphi had their own styling engine. AFAIK Dev Ex has no intention of supporting VCL styles. That info was from a few years ago, and things may have changed.

Share this post


Link to post

Update TMS says its controls DO also support Delphi styles

It is true. It works.

The problem with TMS is that they have different types of VCLs. That's why I wrote method.

Edited by Stano

Share this post


Link to post
18 hours ago, Erwin Mouthaan said:

StyleControls VCL from Almediadev comes with special adapter unit to use VCL Styles with DevExpress controls.

Not to discredit Almediadev, from what i have seen it seems to be a brilliant lib, but the cross-styles setup does not (to my current knowledge) support the DX Ribbon, it focuses on the QuantumGrid. This may have changed since i last checked.

 

The DX Ribbon, specifically, is not so bad. It is a complex control that is based on their BarManager. This makes "links" and stuff have a lot of "obsolete" properties, increases the learning curve. Also links between bars items and ribbon groups (or bars and groups - cannot check now) uses collections so visual inheritance will not play well. Also since Tokyo you have to make sure the IDE do not use the skins or you will need some impressive metal* to be able to work with complex dfm's. Otherwise - you can save a LOT of time using DX if it fits your needs. A LOT.

 

* The newest IDEs require impressive metal anyways, methinks.

Share this post


Link to post

There is an enhanced version of Toolbar 2000 called SpTBXLib. see https://github.com/SilverpointDev/sptbxlib

It is actually quite a good option, since it supports VCL Styles, and is High DPI aware. It has been used in PyScripter (https://github.com/pyscripter/pyscripter )     And the author has worked on adding these features (i.e. to be High DPI aware), so I recommend that you check it out.

 

Dev Express has it's own skin system that does not work with the VCL styles. So if your app is using a whole range of components, it is probably a good idea not to use their Toolbar/Ribbon system. Only use individual controls you may need, and you can manually select specific styles that would match VCL Styles, if neccessary.

 

I would suggest for you to first upgrade your project to recent version of Delphi, using SpTBXLib and support high DPI, since that is a fair amount of work in itself. Once your app is up and running, then you could decide on replacing various components if necessary.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×