Делаем TStaticText прозрачным

Я должен использовать TStaticText вместо TLabel, чтобы сделать мое программное обеспечение удобным для чтения с экрана, потому что TStaticText имеет дескриптор окна, а TLabel — нет.

Однако, несмотря на то, что TStaticText имеет свойство Transparent, он не совсем прозрачен на градиентном фоне.

Может ли кто-нибудь порекомендовать, как сделать его прозрачным или, возможно, как сделать простой пользовательский компонент, который был бы совместим с программами чтения с экрана (с дескриптором окна) и в то же время прозрачным?


person Coder12345    schedule 01.03.2015    source источник
comment
Я думаю, вам нужно переопределить обработку по умолчанию WM_ERASEBACKGROUND.   -  person Free Consulting    schedule 01.03.2015
comment
Возможно, вам лучше сделать производную TLabel, которая была бы дружественна к автоматизации. Таким образом, вы бы знали, как сделать то же самое для других элементов управления, отличных от Win32. Меня действительно удивляет, что VCL (и, предположительно, FMX) до сих пор не поддерживает автоматизацию.   -  person David Heffernan    schedule 01.03.2015
comment
@DavidHeffernan На самом деле FMX поддерживает специальные возможности — посмотрите здесь — docwiki.embarcadero.com/RADStudio/ XE6/ru/ . Как бы вы сделали TLable удобным для автоматизации?   -  person Coder12345    schedule 01.03.2015
comment
Вау, редкая победа FMX! ;-) Здесь на SO есть действительно хороший ответ от Реми Лебо на тему добавления специальных возможностей к элементу управления vcl. Поиск должен дать это. Или найдите лучшие ответы Реми.   -  person David Heffernan    schedule 01.03.2015
comment
Хорошо, это здесь: stackoverflow .com/questions/16320914/   -  person David Heffernan    schedule 01.03.2015
comment
В Windows должны быть включены темы для работы прозрачности TStaticText.   -  person Johan    schedule 07.06.2017