Delphi 11.2, IOS, and Dark mode - ios

In my IOS app, I have some components that use custom styles. When run in IOS's Light mode, the components appear correctly. However, when run under Dark mode on the IOS device, the colors of the "text" properties of the custom styles are not being "flipped".
The text properties of those styles are using the TText and TActiveStyleTextObject components. The custom styles are either for the TTreeViewItem or TListBoxItem components, but not sure if the problem is limited to those components only, as I do not use custom styles for other components.
All the the text properties for the custom styles use the same colors as the default styles. I did add a "IOS13 Dark" style to the Style book and flipped the colors within the style hoping that was the problem. But I have confirmed that the app is using the IOS styles regardless of the Light/Dark mode, and not the IOS13 Dark styles.
So it appears the Delphi logic is not flipping any text colors for styles set up in a Style Book when switching between the IOS's Light and Dark modes.
Anyone else seen this problem and had success in fixing it?

Related

NativeScript NS Theme styling RadDataForm, how do I get the default iOS style?

So yesterday my app suddenly restarted and all my RadDataForms are styled from some theme applied..
I simply want the RadDataForm to have the basic, default look: white background, black text, no styling.
If I remove #import "~#nativescript/theme/blue"; from my styles, the labels will have a grey color, and the editor will still have this weird underline...
Why is there even two underlines?

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 use the new Delphi VCL styles to simply color a specific object (TPageControl) alone?

I am starting with Delphi VCL styles and I see that it is very easy to apply a predefined style using 'Project | Options' and then 'Application | Appearance'.
Naturally these styles affect the whole look and feel of the Application. I would like to keep the default Windows style (I'm using 'Runtime themes enabled') but I want to change the default white background shown by TPageControl. I came across this excellent article on creating colourful page control tabs which shows how to override the colouring of the tabs, but it seems to apply only when a style is loaded.
My question is how (whether?) I can use TStyleServices without loading a style file to get at only the TTabSheet components and set a colour?
(And yes, I know that there are a number of other TPageControl replacements available, I want to stick with the standard controls).
You can access the elements (colors, images) of the loaded VCL Styles in anytime even if the Windows native style is active.
var
LStyleServices : TCustomStyleServices;
begin
LStyleServices:=TStyleManager.Style['AnyLoadedVclStyle'];
//draw with the LStyleServices
....
end;
But only you can use the Vcl Style hooks to draw the controls when a custom style is selected.

Delphi XE5 Android TButton colors

I need change color of 50 buttons in one form.
Every button another color and color want to set by code(no design editor).
It is firemonkey mobile application.
By my opinion, without making your own button that doesn't use FMX styles completely (which would break multiplatform compatibility if you are looking forward to support multiple platforms with their native styles), you may apply some filter on top of each of those buttons but on some styles this may cause the text not to be visible, implementing your own filter might get you the desired result:
Effect:=TFillRGBEffect.Create(Self);
Effect.Color:=$80FF0000;
Effect.Parent:=SomeButton;
Another way would be to take advantage of TColorButton with TText on top of it, but this way the entire button won't be filled with your color, but you can modify default/custom style for each platform in order to get what you need (this indeed needs to be done in the designer but you would have to create just one style for each platform you need to support and not 50 for each button):
Button:=TColorButton.Create(Self);
Button.Color:=$80FF0000;
Text:=TText.Create(Button);
Text.Parent:=Button;
Text.Align:=TAlignLayout.alClient;
Text.Text:='Hello';
Text.HitTest:=false;
Button.ClipChildren:=true;
Button.Parent:=Self;

Transparency & runtime themes

When runtime themes are disabled for whole project, transparent images are drawn with black background. Is it possible to draw transparent image on button when runtime themes are disabled? The button I am using is from TMS Component Pack, its class name is TAdvToolButton. I need to have themes disabled because I want to fully control how application looks like. This is important request.
Please try to explain the connection between transparency & themes because I don't see it. I think these are two different things.

Resources