Difference between revisions of "Colors/ru"

From Free Pascal wiki
Jump to navigationJump to search
 
(6 intermediate revisions by the same user not shown)
Line 173: Line 173:
 
|}
 
|}
  
==System colors==
+
==Системные цвета==
  
===Example: clInfoBk, clInfoText===
+
===Пример: clInfoBk, clInfoText===
  
System colors are color constants with a special meaning. Their real value depends on the context and theme. They are not simple colors.
+
Системные цвета - это цветовые константы с особым значением. Их реальное значение зависит от контекста и темы. Они не являются просто цветом. Например, '''clInfoBk''':
For example '''clInfoBk''':
 
  
<syntaxhighlight lang="pascal">Form1.Canvas.Brush.Color:=clInfoBk;  // use the default background brush of a hint window
+
<syntaxhighlight lang="pascal">Form1.Canvas.Brush.Color:=clInfoBk;  // используем цвет кисти по умолчанию для фона в окнах подсказок
 
Form1.Canvas.FillRect(10,10,50,50);</syntaxhighlight>
 
Form1.Canvas.FillRect(10,10,50,50);</syntaxhighlight>
  
A hint window on MS Windows might have a white background so the above will draw white. On Linux/gtk2 it might be a metallic texture, so the above will draw the texture. If you want to put some text onto this you need a corresponding color like '''clInfoText''', otherwise your text might be unreadable for the user. For example:
+
Окно подсказок в MS Windows может иметь белый фон, поэтому вышеприведенный цвет будет отображаться белым. В Linux/gtk2 это может быть металлическая текстура, поэтому вышеприведенный будет рисовать текстуру. Если вы хотите поместить какой-либо текст в это окно, вам понадобится соответствующий контрастный цвет, например, '''clInfoText''', иначе ваш текст может быть нечитаемым для пользователя. Например:
  
<syntaxhighlight lang="pascal">Form1.Canvas.Brush.Color:=clInfoBk;  // use the default background brush of a hint window
+
<syntaxhighlight lang="pascal">Form1.Canvas.Brush.Color:=clInfoBk;  // используем цвет кисти по умолчанию для фона в окнах подсказок
 
Form1.Canvas.FillRect(10,10,50,50);
 
Form1.Canvas.FillRect(10,10,50,50);
Form1.Canvas.Font.Color:=clInfoText;  // use the default text color of a hint window
+
Form1.Canvas.Font.Color:=clInfoText;  // используем цвет текста по умолчанию в окнах подсказок
 
Form1.Canvas.TextOut(10,10,'Hint');</syntaxhighlight>
 
Form1.Canvas.TextOut(10,10,'Hint');</syntaxhighlight>
  
The system color '''clInfoBk''' can not be used for Pen.Color and not for Font.Color. If you do so the result is undefined and depends on the widgetset and user theme.
+
Системный цвет '''clInfoBk''' не может использоваться для Pen.Color и Font.Color. Если вы сделаете это, результат не определен и зависит от набора виджетов и пользовательской темы. То же самое для '''clInfoText''': он может использоваться только как Font.Color. Использование его в качестве Brush.Color может не работать. На данный момент все виджеты позволяют использовать его как Pen.Color.
The same for '''clInfoText''': It can only be used as a Font.Color. Using it as Brush.Color may not work. At the moment all widgetsets allow to use it as Pen.Color too.
 
  
===Theme changes===
+
===Изменения темы===
  
When the user switches the theme the system colors changes. A '''clInfoBk''' might change from white to blue or from a color to a texture. This change will happen when you allocate a new Brush handle. Keep in mind that a simple assignment Brush.Color:=clInfoBk does not allocate a Brush Handle. The Brush Handle is allocated on use. For example:
+
Когда пользователь переключает тему, системные цвета меняются. '''ClInfoBk''' может измениться с белого на синий или с цвета на текстуру. Это изменение произойдет, когда вы назначите новый дескриптор кисти. Имейте в виду, что простое присвоение <code>Brush.Color:=clInfoBk</code> не назначает дескриптор кисти. Дескриптор кисти назначается в процессе использования. Например:
  
<syntaxhighlight lang="pascal">Form1.Canvas.Brush.Color:=clInfoBk; // this will not create a new brush handle
+
<syntaxhighlight lang="pascal">Form1.Canvas.Brush.Color:=clInfoBk; // это не создаст новый дескриптор кисти
Form1.Canvas.FillRect(10,10,50,50); // this will create the brush handle with the currently active theme brush for hint windows
+
Form1.Canvas.FillRect(10,10,50,50); // а это создаст дескриптор кисти с текущей активной кистью темы для окон подсказок
 
...
 
...
// if the theme changes in this moment the Brush.Handle is still allocated with the old values
+
// если тема меняется в этот момент, Brush.Handle все еще заполнен старыми значениями
 
...
 
...
Form1.Canvas.FillRect(10,10,50,50); // this will paint with the old theme brush
+
Form1.Canvas.FillRect(10,10,50,50); // это все еще будет рисоваться кистью старой темы
Form1.Canvas.Brush.Color:=clInfoBk; // assigning the old value will not create a new brush handle
+
Form1.Canvas.Brush.Color:=clInfoBk; // присвоение старого значения не создаст новый дескриптор кисти
Form1.Canvas.FillRect(10,10,50,50); // this will paint with the old theme brush
+
Form1.Canvas.FillRect(10,10,50,50); // это все еще будет рисоваться кистью старой темы
Form1.Canvas.Brush.Color:=clRed;    // assigning a new color, old Handle invalid
+
Form1.Canvas.Brush.Color:=clRed;    // присвоение нового цвета, старый Handle недействителен
Form1.Canvas.Brush.Color:=clInfoBk; // assigning a new color, old Handle invalid
+
Form1.Canvas.Brush.Color:=clInfoBk; // присвоение нового цвета, старый Handle недействителен
Form1.Canvas.FillRect(10,10,50,50); // this will create a new handle and paint with the new theme</syntaxhighlight>
+
Form1.Canvas.FillRect(10,10,50,50); // это создаст новый дескриптор и нарисует новую тему</syntaxhighlight>
  
===Table of system colors===
+
===Таблица системных цветов===
  
The following table lists the system colors and their meaning. Using them outside the scope of the definition is undefined and the result depends on the widgetset and theme. For example '''clDefault''' is the normal background brush of the used device context. If you want to paint button elements on your own custom controls use the drawing functions of the unit '''Themes'''.
+
В следующей таблице перечислены системные цвета и их значение. Использование их вне описанной области неоднозначно, и результат зависит от набора виджетов и темы. Например, '''clDefault''' - обычная кисть фона используемого контекста устройства. Если вы хотите рисовать элементы кнопок на своих собственных элементах управления, используйте функции рисования модуля '''Themes'''.
  
 
{| class="wikitable"
 
{| class="wikitable"
! Constant !! LCL definition !! Delphi notes !! Supported Widgetsets
+
! Константа !! Определение LCL !! Delphi notes !! Поддерживаемые наборы виджетов
 
|----
 
|----
|clNone||Indicates "do not paint". Using it as Control's color is undefined. The control will not get transparent.|| - || all
+
|clNone||Обозначает «не раскрашивать». Использование его в качестве цвета элемента управления не определено. Элемент управления не станет прозрачным.|| - || все
 
|----
 
|----
|clDefault||Using it for Brush will use the normal background brush of the target DC (device context).  
+
|clDefault||Означает, что применительно к кисти будет использоваться обычный фон целевого DC (контекст устройства).
* On a Form's canvas a ''FillRect'' will paint a rectangular area filled with the normal background of a standard window. This is whatever the widgetset and theme defines. This might be the color gray or a gradient or a picture.  
+
* На холсте формы ''FillRect'' закрашивает прямоугольную область, заполненную обычным фоном стандартного окна. Это то, что определяет набор виджетов и тема. Это может быть серый цвет, или градиент, или изображение.
* Using clDefault on the Canvas of a TListBox will paint with the normal background, which is normally white on Windows. So in a TListBox clDefault is the same as clWindow.  
+
* Использование clDefault на холсте TListBox будет рисовать с нормальным фоном, который обычно белый в Windows. Таким образом, в TListBox clDefault совпадает с clWindow.
* Using it as Pen color will use the default line color for the device context.  
+
* При использовании его в качестве цвета пера будет задействован цвет линии по умолчанию для контекста устройства.
* Using it as Font color will use the normal text color of the device context.  
+
* При использование его в качестве цвета шрифта будет задействован обычный цвет текста контекста устройства.
|| - || all
+
|| - || все
 
|----
 
|----
|clScrollBar|| Scrollbar body || - || all
+
|clScrollBar|| Тело полосы прокрутки || - || все
 
|----
 
|----
|clBackground|| Desktop background color || - || all
+
|clBackground|| Цвет фона рабочего стола || - || все
 
|----
 
|----
|clActiveCaption|| Active window titlebar || - || none
+
|clActiveCaption|| Строка заголовка активного окна || - || никакой
 
|----
 
|----
|clInactiveCaption|| Inactive window titlebar || - || none
+
|clInactiveCaption|| Строка заголовка неактивного окна || - || никакой
 
|----
 
|----
|clMenu|| Regular menu item background color || - || none
+
|clMenu|| Обычный цвет пункта меню || - || никакой
 
|----
 
|----
|clWindow|| The normal background brush of unselected text. Defined for controls like TEdit, TComboBox, TMemo, TListBox, TTreeView.|| - || none
+
|clWindow|| Обычная фоновая кисть невыделенного текста. Определено для элементов управления, таких как TEdit, TComboBox, TMemo, TListBox, TTreeView.|| - || никакой
 
|----
 
|----
|clWindowFrame|| Color of frame around the window || - || none
+
|clWindowFrame|| Цвет рамки вокруг окна || - || никакой
 
|----
 
|----
|clMenuText|| The font color to use together with clMenu || - || none
+
|clMenuText|| Цвет шрифта для использования вместе с clMenu || - || никакой
 
|----
 
|----
|clWindowText|| Font color to use together with clWindow || - || none
+
|clWindowText|| Цвет шрифта для использования вместе с clWindow || - || никакой
 
|----
 
|----
|clCaptionText|| Active window titlebar text color || - || none
+
|clCaptionText|| Цвет строки заголовка активного окна || - || никакой
 
|----
 
|----
|clActiveBorder||?|| - || none
+
|clActiveBorder||?|| - || никакой
 
|----
 
|----
|clInactiveBorder||?|| - || none
+
|clInactiveBorder||?|| - || никакой
 
|----
 
|----
|clAppWorkspace|| MDIMain form background || - || none
+
|clAppWorkspace|| Фон формы MDIMain || - || никакой
 
|----
 
|----
|clHighlight|| The brush color of selected element || - || none
+
|clHighlight|| Цвет кисти выбранного элемента || - || никакой
 
|----
 
|----
|clHighlightText|| Font color of selected text (to use together with clHighligh). || - || none
+
|clHighlightText|| Цвет шрифта выделенного текста (использовать вместе с clHighligh). || - || никакой
 
|----
 
|----
|clBtnFace|| Button background || - || none
+
|clBtnFace|| Фон кнопки || - || никакой
 
|----
 
|----
|clBtnShadow|| Button shadow color (bottom right) used to achieve 3D effect || - || none
+
|clBtnShadow|| Цвет тени кнопки (внизу справа), используемый для достижения эффекта 3D || - || никакой
 
|----
 
|----
|clGrayText|| The font color of disabled element || - || none
+
|clGrayText|| Цвет шрифта отключенного элемента || - || никакой
 
|----
 
|----
|clBtnText|| Button font color to use together with clBtnFace || - || none
+
|clBtnText|| Цвет шрифта кнопки для использования вместе с clBtnFace || - || никакой
 
|----
 
|----
|clInactiveCaptionText|| Inactive window titlebar text color || - || none
+
|clInactiveCaptionText|| Цвет текста заголовка неактивного окна || - || никакой
 
|----
 
|----
|clBtnHighlight|| Button highlight color (top left) used to achieve 3D effect || - || none
+
|clBtnHighlight|| Цвет подсветки кнопки (вверху слева), используемый для достижения эффекта 3D || - || никакой
 
|----
 
|----
|cl3DDkShadow||?|| - || none
+
|cl3DDkShadow||?|| - || никакой
 
|----
 
|----
|cl3DLight||?|| - || none
+
|cl3DLight||?|| - || никакой
 
|----
 
|----
|clInfoText|| Font color for hints. Use together with clInfoBk || - || all
+
|clInfoText|| Цвет шрифта для окон с подсказками. Используется вместе с clInfoBk || - || все
 
|----
 
|----
|clInfoBk|| Brush color for hints. Use together with clInfoText || - || all
+
|clInfoBk|| Цвет кисти для окон с подсказками. Используется вместе с clInfoText || - || все
 
|----
 
|----
|clHotLight||?|| - || none
+
|clHotLight||?|| - || никакой
 
|----
 
|----
|clGradientActiveCaption|| The second color used to make gradient of active window titlebar || - || none
+
|clGradientActiveCaption|| Второй цвет, используемый для создания градиента строки заголовка активного окна || - || никакой
 
|----
 
|----
|clGradientInactiveCaption|| The second color used to make gradient for inactive window titlebar || - || none
+
|clGradientInactiveCaption|| Второй цвет, используемый для создания градиента строки заголовка неактивного окна || - || никакой
 
|----
 
|----
|clMenuHighlight|| The background color of selected menu item || - || none
+
|clMenuHighlight|| Цвет фона выбранного пункта меню || - || никакой
 
|----
 
|----
|clMenuBar|| The Backround color of menu bar || - || none
+
|clMenuBar|| Цвет фона строки меню || - || никакой
 
|----
 
|----
|clForm||?|| - || none
+
|clForm||?|| - || никакой
 
|----
 
|----
|clColorDesktop||?|| - || none
+
|clColorDesktop||?|| - || никакой
 
|----
 
|----
|cl3DFace||?|| - || none
+
|cl3DFace||?|| - || никакой
 
|----
 
|----
|cl3DShadow||?|| - || none
+
|cl3DShadow||?|| - || никакой
 
|----
 
|----
|cl3DHiLight||?|| - || none
+
|cl3DHiLight||?|| - || никакой
 
|----
 
|----
|clBtnHiLight|| Same as clBtnHighlight || - || none
+
|clBtnHiLight|| Такой же как у clBtnHighlight || - || никакой
 
|}
 
|}
  
=== Finding the rgb values of a system color ===
+
=== Нахождение значений RGB системного цвета ===
Use the function <tt>ColorToRGB</tt> (in unit <tt>Graphics</tt> to determine the rgb components of a system color. This functions detects whether a color is a system color and, if this is true, looks up the system color in the themes color. The returned [[Longint]] can be understood as a normal color:
+
Используйте функцию <tt>ColorToRGB</tt> (в модуле <tt>Graphics</tt>), чтобы определить компоненты rgb системного цвета. Эта функция определяет, является ли цвет системным цветом, и, если это так, находится ли системный цвет в цветовой гамме текущей темы. Возвращаемое значение типа [[Longint]] можно понимать как обычный цвет:
<syntaxhighlight lang="pascal">// This example has a TColorBox on a form and uses this OnChange handler for the TColorbox:
+
<syntaxhighlight lang="pascal">// в этом примере имеется TColorBox на форме и используется обработчик OnChange для TColorbox:
 
procedure TForm1.ColorBox1Change(Sender: TObject);
 
procedure TForm1.ColorBox1Change(Sender: TObject);
 
var
 
var
Line 309: Line 307:
 
end; </syntaxhighlight>
 
end; </syntaxhighlight>
  
==Drawing theme elements on your custom controls==
+
==Рисование элементов соответственно теме на ваших пользовательских элементах управления==
 
 
The unit '''Themes''' provides functions to draw single elements of standard controls. For example to draw an expand sign like a [[TTreeView]] use the following code:
 
  
 +
Модуль '''Themes''' предоставляет функции для рисования отдельных элементов стандартных элементов управления. Например, чтобы нарисовать знак раскрытия узла, например, [[TTreeView]], используйте следующий код:
 
<syntaxhighlight lang="pascal">uses Themes;
 
<syntaxhighlight lang="pascal">uses Themes;
  
Line 330: Line 327:
 
begin
 
begin
 
   ...
 
   ...
   //draw a themed expand sign.
+
   //рисуем знак раскрытия узла дерева соответственно теме
 
   Details := ThemeServices.GetElementDetails(PlusMinusDetail[False, Collapse]);
 
   Details := ThemeServices.GetElementDetails(PlusMinusDetail[False, Collapse]);
 
   R := Rect(ALeft, ATop, ARight + 1, ABottom + 1);
 
   R := Rect(ALeft, ATop, ARight + 1, ABottom + 1);
Line 338: Line 335:
  
 
==См. также==
 
==См. также==
[http://diversenok.ho.ua/articles/TColor Цвета в Delphi]
+
 
[http://www.falsefriends.ru/english-colors.htm Таблица названий цветов в английском языке]
+
*[http://diversenok.ho.ua/articles/TColor Цвета в Delphi]
 +
*[http://www.falsefriends.ru/english-colors.htm Таблица названий цветов в английском языке]

Latest revision as of 15:18, 3 June 2020

Deutsch (de) English (en) español (es) suomi (fi) français (fr) 日本語 (ja) русский (ru) 中文(中国大陆)‎ (zh_CN)

Обзор

В LCL TColor - это стандартный тип цвета. Он совместим с TColor Delphi. TColor может представляться как в виде значения RGB (3x8bit), так и в виде системного цвета наподобие clDefault. LCL также может работать с системой fpImage, которая использует тип TFPColor (RGBA (4x16bit), а не RGB (3x8bit), как TColor).

Преобразование значений между TColor и RGB

Модуль Graphics предосталяет следующие функции:

function Blue(rgb: TColor): BYTE; // не работает с системным цветом
function Green(rgb: TColor): BYTE; // не работает с системным цветом
function Red(rgb: TColor): BYTE; // не работает с системным цветом
function RGBToColor(R, G, B: Byte): TColor;
procedure RedGreenBlue(rgb: TColor; out Red, Green, Blue: Byte); // не работает с системным цветом
function FPColorToTColor(const FPColor: TFPColor): TColor;
function TColorToFPColor(const c: TColor): TFPColor; // не работает с системным цветом
function IsSysColor(AColor: TColorRef): Boolean;

Преобразование типа TColor в/из строки

Функции для преобразования строк вроде "25500" или "$AA0088" или "clNavy" в TColor:

  • StringToColor
  • StringToColorDef

Чтобы преобразовать TColor в красивую строку, такую как "clNavy" или "$AA0002":

  • ColorToString

Преобразование типа TColor в/из HTML-строки #rrggbb

Смотрите код в Преобразовать цвет в/из HTML.

Таблица стандартных цветов

Предусмотрено около 20 предопределенных цветовых Констант, которые совместимы с Delphi:

Цветовая константа Описание цвета Шестнадцатеричное представление для использования с TColor Пример
clBlack Черный TColor($000000);
clMaroon Темно-бордовый TColor($000080);
clGreen Зеленый TColor($008000);
clOlive Оливково-зеленый TColor($008080);
clNavy Темно-синий TColor($800000);
clPurple Темно-фиолетовый TColor($800080);
clTeal Сине-зеленый TColor($808000);
clGray Серый TColor($808080);
clSilver Серебристый TColor($C0C0C0);
clRed Красный TColor($0000FF);
clLime Салатовый TColor($00FF00);
clYellow Желтый TColor($00FFFF);
clBlue Синий TColor($FF0000);
clFuchsia Фуксия TColor($FF00FF);
clAqua Голубой TColor($FFFF00);
clLtGray Светло-серый TColor($C0C0C0); псевдоним для clSilver
clDkGray Темно-серый TColor($808080); псевдоним для clGray
clWhite Белый TColor($FFFFFF);
clCream Кремовый TColor($F0FBFF); Lazarus 1.2 и новее
clMedGray Средне-серый TColor($A4A0A0); Lazarus 1.2 и новее
clMoneyGreen Денежная зелень TColor($C0DCC0); Lazarus 1.2 и новее
clSkyBlue Небесно-голубой TColor($F0CAA6); Lazarus 1.2 и новее

Системные цвета

Пример: clInfoBk, clInfoText

Системные цвета - это цветовые константы с особым значением. Их реальное значение зависит от контекста и темы. Они не являются просто цветом. Например, clInfoBk:

Form1.Canvas.Brush.Color:=clInfoBk;  // используем цвет кисти по умолчанию для фона в окнах подсказок
Form1.Canvas.FillRect(10,10,50,50);

Окно подсказок в MS Windows может иметь белый фон, поэтому вышеприведенный цвет будет отображаться белым. В Linux/gtk2 это может быть металлическая текстура, поэтому вышеприведенный будет рисовать текстуру. Если вы хотите поместить какой-либо текст в это окно, вам понадобится соответствующий контрастный цвет, например, clInfoText, иначе ваш текст может быть нечитаемым для пользователя. Например:

Form1.Canvas.Brush.Color:=clInfoBk;  // используем цвет кисти по умолчанию для фона в окнах подсказок
Form1.Canvas.FillRect(10,10,50,50);
Form1.Canvas.Font.Color:=clInfoText;  // используем цвет текста по умолчанию в окнах подсказок
Form1.Canvas.TextOut(10,10,'Hint');

Системный цвет clInfoBk не может использоваться для Pen.Color и Font.Color. Если вы сделаете это, результат не определен и зависит от набора виджетов и пользовательской темы. То же самое для clInfoText: он может использоваться только как Font.Color. Использование его в качестве Brush.Color может не работать. На данный момент все виджеты позволяют использовать его как Pen.Color.

Изменения темы

Когда пользователь переключает тему, системные цвета меняются. ClInfoBk может измениться с белого на синий или с цвета на текстуру. Это изменение произойдет, когда вы назначите новый дескриптор кисти. Имейте в виду, что простое присвоение Brush.Color:=clInfoBk не назначает дескриптор кисти. Дескриптор кисти назначается в процессе использования. Например:

Form1.Canvas.Brush.Color:=clInfoBk; // это не создаст новый дескриптор кисти
Form1.Canvas.FillRect(10,10,50,50); // а это создаст дескриптор кисти с текущей активной кистью темы для окон подсказок
...
// если тема меняется в этот момент, Brush.Handle все еще заполнен старыми значениями
...
Form1.Canvas.FillRect(10,10,50,50); // это все еще будет рисоваться кистью старой темы
Form1.Canvas.Brush.Color:=clInfoBk; // присвоение старого значения не создаст новый дескриптор кисти
Form1.Canvas.FillRect(10,10,50,50); // это все еще будет рисоваться кистью старой темы
Form1.Canvas.Brush.Color:=clRed;    // присвоение нового цвета, старый Handle недействителен
Form1.Canvas.Brush.Color:=clInfoBk; // присвоение нового цвета, старый Handle недействителен
Form1.Canvas.FillRect(10,10,50,50); // это создаст новый дескриптор и нарисует новую тему

Таблица системных цветов

В следующей таблице перечислены системные цвета и их значение. Использование их вне описанной области неоднозначно, и результат зависит от набора виджетов и темы. Например, clDefault - обычная кисть фона используемого контекста устройства. Если вы хотите рисовать элементы кнопок на своих собственных элементах управления, используйте функции рисования модуля Themes.

Константа Определение LCL Delphi notes Поддерживаемые наборы виджетов
clNone Обозначает «не раскрашивать». Использование его в качестве цвета элемента управления не определено. Элемент управления не станет прозрачным. - все
clDefault Означает, что применительно к кисти будет использоваться обычный фон целевого DC (контекст устройства).
  • На холсте формы FillRect закрашивает прямоугольную область, заполненную обычным фоном стандартного окна. Это то, что определяет набор виджетов и тема. Это может быть серый цвет, или градиент, или изображение.
  • Использование clDefault на холсте TListBox будет рисовать с нормальным фоном, который обычно белый в Windows. Таким образом, в TListBox clDefault совпадает с clWindow.
  • При использовании его в качестве цвета пера будет задействован цвет линии по умолчанию для контекста устройства.
  • При использование его в качестве цвета шрифта будет задействован обычный цвет текста контекста устройства.
- все
clScrollBar Тело полосы прокрутки - все
clBackground Цвет фона рабочего стола - все
clActiveCaption Строка заголовка активного окна - никакой
clInactiveCaption Строка заголовка неактивного окна - никакой
clMenu Обычный цвет пункта меню - никакой
clWindow Обычная фоновая кисть невыделенного текста. Определено для элементов управления, таких как TEdit, TComboBox, TMemo, TListBox, TTreeView. - никакой
clWindowFrame Цвет рамки вокруг окна - никакой
clMenuText Цвет шрифта для использования вместе с clMenu - никакой
clWindowText Цвет шрифта для использования вместе с clWindow - никакой
clCaptionText Цвет строки заголовка активного окна - никакой
clActiveBorder ? - никакой
clInactiveBorder ? - никакой
clAppWorkspace Фон формы MDIMain - никакой
clHighlight Цвет кисти выбранного элемента - никакой
clHighlightText Цвет шрифта выделенного текста (использовать вместе с clHighligh). - никакой
clBtnFace Фон кнопки - никакой
clBtnShadow Цвет тени кнопки (внизу справа), используемый для достижения эффекта 3D - никакой
clGrayText Цвет шрифта отключенного элемента - никакой
clBtnText Цвет шрифта кнопки для использования вместе с clBtnFace - никакой
clInactiveCaptionText Цвет текста заголовка неактивного окна - никакой
clBtnHighlight Цвет подсветки кнопки (вверху слева), используемый для достижения эффекта 3D - никакой
cl3DDkShadow ? - никакой
cl3DLight ? - никакой
clInfoText Цвет шрифта для окон с подсказками. Используется вместе с clInfoBk - все
clInfoBk Цвет кисти для окон с подсказками. Используется вместе с clInfoText - все
clHotLight ? - никакой
clGradientActiveCaption Второй цвет, используемый для создания градиента строки заголовка активного окна - никакой
clGradientInactiveCaption Второй цвет, используемый для создания градиента строки заголовка неактивного окна - никакой
clMenuHighlight Цвет фона выбранного пункта меню - никакой
clMenuBar Цвет фона строки меню - никакой
clForm ? - никакой
clColorDesktop ? - никакой
cl3DFace ? - никакой
cl3DShadow ? - никакой
cl3DHiLight ? - никакой
clBtnHiLight Такой же как у clBtnHighlight - никакой

Нахождение значений RGB системного цвета

Используйте функцию ColorToRGB (в модуле Graphics), чтобы определить компоненты rgb системного цвета. Эта функция определяет, является ли цвет системным цветом, и, если это так, находится ли системный цвет в цветовой гамме текущей темы. Возвращаемое значение типа Longint можно понимать как обычный цвет:

// в этом примере имеется TColorBox на форме и используется обработчик OnChange для TColorbox:
procedure TForm1.ColorBox1Change(Sender: TObject);
var
  c: TColor;
begin
  c := ColorToRGB(ColorBox1.Selected);
  Caption := Format('R%d G%d B%d', [Red(c), Green(c), Blue(c)]);
end;

Рисование элементов соответственно теме на ваших пользовательских элементах управления

Модуль Themes предоставляет функции для рисования отдельных элементов стандартных элементов управления. Например, чтобы нарисовать знак раскрытия узла, например, TTreeView, используйте следующий код:

uses Themes;

...

procedure TYourCustomControl.Paint;
const
  PlusMinusDetail: array[Boolean {Hot}, Boolean {Expanded}] of TThemedTreeview =
  (
    (ttGlyphClosed, ttGlyphOpened),
    (ttHotGlyphClosed, ttHotGlyphOpened)
  );
var
  Details: TThemedElementDetails;
  R: TRect;
  Collapse: boolean;
begin
  ...
  //рисуем знак раскрытия узла дерева соответственно теме
  Details := ThemeServices.GetElementDetails(PlusMinusDetail[False, Collapse]);
  R := Rect(ALeft, ATop, ARight + 1, ABottom + 1);
  ThemeServices.DrawElement(Canvas.Handle, Details, R, nil);
  ...
end;

См. также