0

Following on from my previous questions (Delphi 6 TDateTimePicker Windows Visual Theme support via Manifest), we are updating a legacy application developed in Delphi 6 to support Windows Visual Themes (to freshen up the UI). We have included a Manifest and now also Mike Lischke's Windows XP Theme Manager (WXPTM) components, as per previous recommendations.

We can see three components on a new XP tab (palette) in Delphi, have included the path to the library's in our project and dropped the components onto one of the forms. The recompiled EXE is now displaying controls differently from prior to including WXPTM and it seems to have fixed a number of issues, so I am fairly certain (and hope) we have implemented WXPTM correctly.

However, we have some third-party component controls that are descendants of the standard ones, which we thought (hoped) would simply inherit from the replacement/updated controls in WXPTM. Unfortunately, it appears they do not, unless we have missed something out in the WXPTM implementation. Therefore, is it possible to make third-party controls inherit from the updated standard controls in WXPTM? Any tips, tricks, suggestions or advice to point us in the right direction would be greatly appreciated.

Community
  • 1
  • 1
Robert Wigley
  • 1,917
  • 22
  • 42
  • 1
    The XP Theme Manager hooks controls based on class type. Third-party components that inherit from the standard controls that XPTM implements should automatically be hooked and "fixed" accordingly, provided they do not perform their own custom painting that overwrites any painting that XPTM performs. – Remy Lebeau Oct 26 '15 at 22:51
  • This feels too broad. How about an example control? My experience is as Remy says. Something concrete will help. – David Heffernan Oct 26 '15 at 22:51
  • @DavidHeffernan The main ones we are having an issue with are ones modified for database lookups, especially Combo Boxes. I believe it will be the a `TDBLookupComboBox` or similar, but will need to ask our developer for the exact controls tomorrow, as I do not have access to the code. – Robert Wigley Oct 26 '15 at 22:57
  • I think you should provide a clean cut down [mcve] for this. – David Heffernan Oct 26 '15 at 22:58
  • `TDBLookupComboBox` is not a standard ComboBox, it a wholly custom-drawn control based on `TCustomControl`. XPTM's `TThemeManagerDB` component handles DB controls that derive from `TDBLookupControl` (which `TDBLookupComboBox` does). In fact, `TDBLookupComboBox` is the only DB control that `TThemeManagerDB` actually implements. Just make sure that the `toSubclassDBLookup` flag is enabled in the `TThemeManagerDB.Options` property. – Remy Lebeau Oct 26 '15 at 23:03
  • @RemyLebeau I need to check the exact controls with our developer tomorrow and post some further information, but thank you for confirming that if the third-party controls inherit from the standard ones, they should be fixed automatically. – Robert Wigley Oct 26 '15 at 23:07
  • 1
    It also might be more effective for your developer to ask the questions – David Heffernan Oct 26 '15 at 23:41
  • It's extremely difficult to deal with your questions when you are not the developer and you have no access to the source code, as you can't really answer any requests for details or information without checking with your developer. Perhaps your developer should ask the questions here. – Ken White Oct 26 '15 at 23:46
  • @DavidHeffernan Agreed, but, as our developer is a third-party contracted by us, unfortunately I have to work around current corporate requirements. Not ideal at all, and I will be asking to change this. Thank you for your understanding. – Robert Wigley Oct 27 '15 at 01:46
  • @KenWhite Thank you for your comment and time. Please see my previous reply to David Hefferman. I can answer requests for details, but there is an obvious and unfortunate delay in being able to do so due to our current setup. I know this is far from ideal and would rather this wasn't the case, but some things are beyond my control. I really appreciate the time people take on here to help each other and, if I could provide more direct detail at the outset, I would of course do so. I will update the question with this ASAP. – Robert Wigley Oct 27 '15 at 01:59

0 Answers0