Как обнаружить темный режим в приложениях Delphi для macOS

Как обнаружить темный режим в приложениях Delphi Firemonkey macOS (например, Big Sur)?

Коды для Lazarus есть, а для Firemonkey нет.


person ayoub barari    schedule 09.05.2021    source источник
comment
Пожалуйста, покажите код Lazarus в своем вопросе (вы должны отредактировать свой вопрос, чтобы добавить этот код).   -  person fpiette    schedule 09.05.2021


Ответы (1)


Вы можете использовать сервисы платформы FireMonkey для получения этой информации:

uses
  FMX.Platform;

function GetSystemTheme: TSystemThemeKind;
var
  LService: IFMXSystemAppearanceService;
begin
  Result := TSystemThemeKind.Unspecified;
  if TPlatformServices.Current.SupportsPlatformService(IFMXSystemAppearanceService, LService) then
    Result := LService.GetSystemThemeKind;
end;

Где TSystemThemeKind объявляется как

TSystemThemeKind = (Unspecified, Light, Dark); 

IFMXSystemAppearanceService в настоящее время поддерживается на Android, iOS и macOS.

person Dalija Prasnikar    schedule 09.05.2021
comment
Ух ты. спасибо. Если мы хотим вернуться в программу автоматически?? что мы делаем. - person ayoub barari; 09.05.2021
comment
Вы имеете в виду поместить приведенный выше код в функцию? Да, вы можете сделать это легко. Я изменил пример. - person Dalija Prasnikar; 09.05.2021