Как показать собственный значок в TTaskDialog Delphi?

В приложении Delphi 12.1 VCL в Windows 11 я пытаюсь настроить TTaskDialog во время разработки:

object TaskDialog2: TTaskDialog
  Buttons = <>
  Caption = 'Choose an Action'
  RadioButtons = <
    item
      Caption = 'Create a shortcut to this folder'
    end
    item
      Caption = 'Copy the folder and all its contents'
    end>
  Text = 'How do you want to insert the Folder?'
  Left = 676
  Top = 396
end

Но для свойства MainIcon нет выбора знака вопроса.

Я могу загрузить собственное ICO со знаком вопроса в CustomMainIcon во время разработки. Но как показать этот CustomMainIcon?

Загруженный CustomMainIcon не отображается ни во время разработки (с помощью «Тестового диалога»), ни во время выполнения (с помощью TaskDialog2.Execute).

Об этом упоминается в неофициальной документации TTaskDialog.

Andreas Rejbrand 18.08.2024 18:26

(В любом случае не рекомендуется использовать значки вопросительных знаков для диалоговых окон с вопросами. Microsoft прекратила использование этих значков много лет назад.)

Andreas Rejbrand 18.08.2024 18:27

@AndreasRejbrand это тоже есть в официальной документации

Remy Lebeau 18.08.2024 21:34

@RemyLebeau: Отлично! (Это было не тогда.)

Andreas Rejbrand 18.08.2024 21:58
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
98
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Проверка флага tfUseHiconMain в TTaskDialog.Flags во время разработки показывает CustomMainIcon как во время разработки, так и во время выполнения.

Вот результат при использовании CustomMainIcon размером 32x32 пикселя:

А вот результат при использовании CustomMainIcon размером 64x64 пикселя:

А вот результат при использовании CustomMainIcon размером 128x128 пикселей:

Обратите внимание, как большие файлы ICO становятся пикселизированными, хотя все файлы ICO были созданы с помощью генератора иконок Axialis (исходники SVG).

Ответ принят как подходящий

Согласно документации Delphi:

https://docwiki.embarcadero.com/Libraries/en/Vcl.Dialogs.TCustomTaskDialog.CustomMainIcon

Указывает настраиваемый главный значок, если таковой имеется, для диалогового окна задачи.

CustomMainIcon указывает на пользовательский главный значок для этого диалогового окна задачи, если tfUseHiconMain установлен в Флаги.

Флаг tfUseHiconMain по умолчанию отключен. Ваша установка должна включить его.

Другие вопросы по теме