Delphi 11.2 Speedbuttons don't show border at design time - delphi

Running windows 10 21H2. Just upgraded to Delphi 11.2 (from 11.1).
Speedbuttons (with Flat=False) do not show the button rectangle at design time. It does appear at runtime.
Most/all of our VCL projects have an empty style name. I have noticed that if I set the Stylename for the button (or even the form), then it shows normally. But is this the best way of handling it? Is there a global setting somewhere that can restore "normal" behaviour?

In 11.2 the Form Designer Options have a new option Mimic the system style, which is active by default. Disabling that should solve your problem.
Form Designer Options

Related

What happened to "Apply" and "Apply and Close" for styles in Delphi 10.1 Berlin?

In Delphi 10 Seattle, when you're editing a style, there are 3 buttons on the top-right of the editor window's toolbar:
Apply
Apply and Close
Cancel
However, now that I'm using Delphi 10.1 Berlin, these buttons are no longer there:
I relied on these buttons to actually apply the styles. Since Embarcadero has removed these buttons, I now am at the mercy of just closing that tab:
As you can see, this becomes annoying. I also have to count on seeing the prompt to apply the styles, so I have no sure way to apply the styles. My form(s) don't even update with the new style until I explicitly "apply" it. But, since these buttons are gone, I now am forced to close the tab in order to apply the styles. Even if I save all files, it doesn't seem to apply.
How can I forcefully apply my styles while I'm editing, without closing the style editor tab? Am I missing something? I've checked all the documentation and what's new information on these changes...
It would appear these buttons have been completely removed in Delphi 10.1 Berlin, and you're forced to close the style editor in order to apply them. However, in Delphi 10.2 Tokyo, these buttons are back.
So the only thing you can do is close that tab every time you want to apply your styles, until you move up to Delphi 10.2 Tokyo.

Delphi 6 TDateTimePicker Windows Visual Theme support via Manifest

As per my previous question (Delphi 6 support for toolbar and menu icons with alpha channel transparency), we are updating a legacy application developed in Delphi 6 to support Windows Visual Themes by including a Manifest. This has worked well and we have the majority of controls adopting the Windows visual theme correctly.
However, we do have a problem with TDateTimePicker behaving in a slightly odd manner. We have the form colour set to white (RGB 255/255/255) and the input box for TDateTimePicker is not visible on the form until it is clicked into and has an entry in it. Please see screenshots below:
Changing the form colour to grey, we can see that the box is there when not selected, it just has no border drawn around it:
We have been unable to find a property that will change this behaviour. Can anyone shed some light on why this might be occurring, what property needs to be changed, or another method we could possibly use to resolve it?

Can I enlarge the menu font size in Delphi 2?

Everything I've found says I can't do this with Delphi 2's TMainMenu but if somebody here has managed it somehow, I'd really like to know the trick. I found code that changes the System menu font size but none that confines the change to only the application. Anyone here know how to do this or do I have to just accept Delphi 2's tiny menu font size that appears on today's large screen monitors? (Moving the app to an upgraded Delphi is not the answer I need ;-)
The only way to achieve per application custom menu fonts is with an owner drawn menu. Delphi 2 does not support owner drawn menu items directly in the VCL properties of a TMainMenu component. This support was introduced only in Delphi 4.
You could still implement an owner drawn menu, but it would involve implementing them using standard Windows API techniques, and handling the required messages on the forms which own the menus involved. It is not especially difficult but not as straightforward as the event based implementation available in Delphi 4 and later.
You can still use a TMainMenu to define your menus but in your application you would then need to programmatically set the owner draw flag on the menu items and handle the resulting messages appropriately. Doing this, you will need to handle all aspects of drawing the menu - you cannot simply set/change the font and leave the system to draw the menu items. You may also need to provide additional handling for any keyboard shortcuts you have set up.
If this is a viable approach then information on implementing owner drawn menus at the API level can be found here.

TDBEdit/TEdit component borders disapear

I have a form that correctly displays component borders most of the time.
However when I tab out of the form’s first input field, the borders of all the form’s TDBEdit/TEdit components disappear. The component’s border’s reappear when moused over.
I can reset these at runtime by looping through the form’s components and setting TDBEdit/TEdit borders (BevelInner: bvLowered, BevelOuter: bvRaised).
Also, this issue appears to have something to do with the Enable runtime themes option in the Project Options. The issue only exists when this option is enabled and regardless of the Windows Theme that is being used.
CodeGear™ Delphi® 2007 for Win32® R2 Version 11.0.2902.10471
After some additional research it appears that this is a known issue and occurs predominantly when a user is using the ALT button.
Additional information pertaining to workarounds can be found at:
http://qc.embarcadero.com/wc/qcmain.aspx?d=37403

TButtons and "runtime themes": peculiar behavior

Have you seen this?
I have a little utility application (for easy load / test xml generation from CDS and/or DBGo), and I had put some buttons (the poorest button of all, TButton) to trigger some actions.
I never paid attention to appearance, because I'm the only one that uses it. So today I added a new button, and they appeared different from the others in designer - but not when running. It's just an copy and paste process (change the button name, caption and event - the rest is equal to the origin).
When I looked the other buttons have an grey gradient and round corners, the button I copied and pasted not (just a bare rectangle). When running all buttons where just bare rectangles.
So I discovered that on designer, W7 and delphi are applying themes. On running, they are obeying the Project/Options/Application/Enable runtime themes flag.
This is annoying. There's a way to make Delphi doing that obeying the project options flag on forms designer?
(Or even manually if is not possible to automate that)?
EDIT:
The toolbars on the form are from CNWizards ;-)
EDIT II:
Apart of disabling themes for the IDE executable, all buttons get themed equally if the form (or project) is reloaded. But it's really weird.
If you want to enable/disable themes in the IDE, then open the properties of bds.exe, select the 'Compatibility' tab, and make sure that the 'Disable visual themes' checkbox is unchecked/checked.
Programs that you run from the IDE will inherit the compatibility settings of the IDE.
Delphi IDE itself is an application and the way the designer draw the form is using the setting for the IDE application (delphi32.exe or bds.exe's compatibility settings) so the answer is no. The default behaviour is different between IDE versions, for eg. the opposite behaviour (not drawing themed) happened in past.

Resources