После нажатия кнопки я захотел изменить цвет панели на зеленый:
ErrorDetectorPanel->Brush->Color = clLime;
не работает
ErrorDetectorPanel->Color = clLime;
ErrorDetectorPanel->Refresh();
не работает
с этой зависимостью:
ErrorDetectorPanel->ParentColor = false;
ErrorDetectorPanel->Refresh();
это все еще не работает.
попробовал это так:
HBRUSH brush = CreateSolidBrush(RGB(0, 255, 0));
SetWindowLong(ErrorDetectorPanel->Handle,WM_ERASEBKGND, 0);
SetWindowLong(ErrorDetectorPanel->Handle,GCLP_HBRBACKGROUND, (LONG)brush);
TForm прозрачность ложна
тот же результат после нажатия кнопки.
Как я могу сделать это правильно?
Настройка TPanel.Color
свойство является правильным решением (оно будет автоматически установлено ParentColor
в false), однако вы должны отключить темы / стили TPanel
(или всю программу в целом), чтобы использовать пользовательские раскраски. Тематические / Стилизованные элементы управления получают свою окраску от активной темы / стиля.
Других решений пока нет …