TDialogService.MessageDialog 的颜色

Colors of the TDialogService.MessageDialog

你能解释一下我如何获得 TDialogService.MessageDialog window 的已用颜色吗?

更新: 使用此命令创建的:

  TDialogService.MessageDialog('Test3: Confirmation', MsgDlgType.mtConfirmation,
    [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0,
    procedure(const AResult: TModalResult)
    begin
    end);

我需要底部面板(按钮父级)的颜色和消息的背景颜色。我需要这种颜色来使我自己的对话框看起来像 FMX 默认对话框。

目前我有自己的高度可定制的对话框,如下所示:

以及我在哪里可以获得 TDialogService.MessageDialog window 中使用的图标?

感谢 David Heffernan 和 的回答:

procedure GetThemeBackgroud(AImage: TImage; ATheme: HTHEME; APartID: Integer);
var
  stream: TMemoryStream;
  bitmap: Vcl.Graphics.TBitmap;
begin
  bitmap := Vcl.Graphics.TBitmap.Create;
  try
    bitmap.Width := Round(AImage.Width);
    bitmap.Height := Round(AImage.Height);
    DrawThemeBackground(ATheme, bitmap.Canvas.Handle, APartID, 0,
                        Rect(0, 0, bitmap.Width, bitmap.Height), nil);
    stream := TMemoryStream.Create;
    try
      bitmap.SaveToStream(stream);
      AImage.Bitmap.LoadFromStream(stream);
    finally
      stream.Free;
    end;
  finally
    bitmap.Free;
  end;
end;

procedure GetThemeBackgroud;
var
  theme: HTHEME;
begin
  theme := OpenThemeData(0, 'TASKDIALOG');
  if theme <> 0 then
  try
    // Client color
    GetThemeBackgroud(imgClient, theme, TDLG_PRIMARYPANEL);
    // Bottom color
    GetThemeBackgroud(imgBottom, theme, TDLG_SECONDARYPANEL);
  finally
    CloseThemeData(theme);
  end;
end;

这里我们应该添加 2 个 TImages: client 和 buttons parents:

现在我应该调查系统图标加载