Sign in Join
Wiki copytemporary

Colors/ru: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11## Обзор
22
3-В [[LCL]] TColor - это стандартный тип цвета. Он совместим с TColor [[Delphi]]. TColor может представляться *как* в виде значения RGB (3x8bit), *так* и в виде **системного** цвета наподобие **clDefault**. LCL также может работать с системой fpImage, которая использует тип TFPColor (RGBA (4x16bit), а не RGB (3x8bit), как TColor).
3+В [[LCL]] TColor - это стандартный тип цвета. Он совместим с TColor [[Delphi]]. TColor может представляться _как_ в виде значения RGB (3x8bit), _так_ и в виде **системного** цвета наподобие **clDefault**. LCL также может работать с системой fpImage, которая использует тип TFPColor (RGBA (4x16bit), а не RGB (3x8bit), как TColor).
44
55### Преобразование значений между TColor и RGB
66
7-[[Unit|Модуль]] **Graphics** предосталяет следующие [[Function|функции]]:
8-
9-``` pascal
10-function Blue(rgb: TColor): BYTE; // не работает с системным цветом
11-function Green(rgb: TColor): BYTE; // не работает с системным цветом
12-function Red(rgb: TColor): BYTE; // не работает с системным цветом
13-function RGBToColor(R, G, B: Byte): TColor;
14-procedure RedGreenBlue(rgb: TColor; out Red, Green, Blue: Byte); // не работает с системным цветом
15-function FPColorToTColor(const FPColor: TFPColor): TColor;
16-function TColorToFPColor(const c: TColor): TFPColor; // не работает с системным цветом
17-function IsSysColor(AColor: TColorRef): Boolean;
7+[[Unit|Модуль]] **Graphics** предосталяет следующие [[Function|функции]]:
188```
9+function ColorToRGB(Color: TColor): Longint;
10+ function Blue(rgb: TColor): BYTE; // не работает с системным цветом
11+ function Green(rgb: TColor): BYTE; // не работает с системным цветом
12+ function Red(rgb: TColor): BYTE; // не работает с системным цветом
13+ function RGBToColor(R, G, B: Byte): TColor;
14+ procedure RedGreenBlue(rgb: TColor; out Red, Green, Blue: Byte); // не работает с системным цветом
15+ function FPColorToTColor(const FPColor: TFPColor): TColor;
16+ function TColorToFPColor(const c: TColor): TFPColor; // не работает с системным цветом
17+ function IsSysColor(AColor: TColorRef): Boolean;
18+```
1919
2020### Преобразование типа TColor в/из строки
2121
22-Функции для преобразования строк вроде "25500" или "[[Dollar sign|$AA]]0088" или "clNavy" в TColor:
22+Функции для преобразования строк вроде "25500" или "[[Dollar sign|$]]AA0088" или "clNavy" в TColor:
2323
24-- StringToColor
25-- StringToColorDef
24+ * StringToColor
25+ * StringToColorDef
2626
27-Чтобы преобразовать TColor в красивую строку, такую как "clNavy" или "\$AA0002":
27+Чтобы преобразовать TColor в красивую строку, такую как "clNavy" или "$AA0002":
2828
29-- ColorToString
29+ * ColorToString
3030
31-### Преобразование типа TColor в/из HTML-строки \#rrggbb
31+### Преобразование типа TColor в/из HTML-строки #rrggbb
3232
33-Смотрите код в [[Convert color to/from HTML|Преобразовать цвет в/из HTML]].
33+Смотрите код в [[Convert color to/from HTML|Преобразовать цвет в/из HTML]].
3434
3535## Таблица стандартных цветов
3636
37-Предусмотрено около 20 предопределенных цветовых [[Constant|Констант]], которые совместимы с Delphi:
38-
39-| Цветовая константа | Описание цвета | [[Hexadecimal/ru|Шестнадцатеричное]] представление для использования с TColor | Пример |
40-|----|----|----|----|
41-| clBlack | Черный | TColor(\$000000); | |
42-| clMaroon | Темно-бордовый | TColor(\$000080); | |
43-| clGreen | Зеленый | TColor(\$008000); | |
44-| clOlive | Оливково-зеленый | TColor(\$008080); | |
45-| clNavy | Темно-синий | TColor(\$800000); | |
46-| clPurple | Темно-фиолетовый | TColor(\$800080); | |
47-| clTeal | Сине-зеленый | TColor(\$808000); | |
48-| clGray | Серый | TColor(\$808080); | |
49-| clSilver | Серебристый | TColor(\$C0C0C0); | |
50-| clRed | Красный | TColor(\$0000FF); | |
51-| clLime | Салатовый | TColor(\$00FF00); | |
52-| clYellow | Желтый | TColor(\$00FFFF); | |
53-| clBlue | Синий | TColor(\$FF0000); | |
54-| clFuchsia | Фуксия | TColor(\$FF00FF); | |
55-| clAqua | Голубой | TColor(\$FFFF00); | |
56-| clLtGray | Светло-серый | TColor(\$C0C0C0); | псевдоним для clSilver |
57-| clDkGray | Темно-серый | TColor(\$808080); | псевдоним для clGray |
58-| clWhite | Белый | TColor(\$FFFFFF); | |
59-| clCream | Кремовый | TColor(\$F0FBFF); | Lazarus 1.2 и новее |
60-| clMedGray | Средне-серый | TColor(\$A4A0A0); | Lazarus 1.2 и новее |
61-| clMoneyGreen | Денежная зелень | TColor(\$C0DCC0); | Lazarus 1.2 и новее |
62-| clSkyBlue | Небесно-голубой | TColor(\$F0CAA6); | Lazarus 1.2 и новее |
37+Предусмотрено около 20 предопределенных цветовых [[Constant|Констант]], которые совместимы с Delphi:
6338
39+Цветовая константа | Описание цвета | [[Hexadecimal/ru|Шестнадцатеричное]] представление для использования с TColor | Пример
40+---|---|---|---
41+clBlack | Черный | TColor($000000); |
42+clMaroon | Темно-бордовый | TColor($000080); |
43+clGreen | Зеленый | TColor($008000); |
44+clOlive | Оливково-зеленый | TColor($008080); |
45+clNavy | Темно-синий | TColor($800000); |
46+clPurple | Темно-фиолетовый | TColor($800080); |
47+clTeal | Сине-зеленый | TColor($808000); |
48+clGray | Серый | TColor($808080); |
49+clSilver | Серебристый | TColor($C0C0C0); |
50+clRed | Красный | TColor($0000FF); |
51+clLime | Салатовый | TColor($00FF00); |
52+clYellow | Желтый | TColor($00FFFF); |
53+clBlue | Синий | TColor($FF0000); |
54+clFuchsia | Фуксия | TColor($FF00FF); |
55+clAqua | Голубой | TColor($FFFF00); |
56+clLtGray | Светло-серый | TColor($C0C0C0); | псевдоним для clSilver
57+clDkGray | Темно-серый | TColor($808080); | псевдоним для clGray
58+clWhite | Белый | TColor($FFFFFF); |
59+clCream | Кремовый | TColor($F0FBFF); | Lazarus 1.2 и новее
60+clMedGray | Средне-серый | TColor($A4A0A0); | Lazarus 1.2 и новее
61+clMoneyGreen | Денежная зелень | TColor($C0DCC0); | Lazarus 1.2 и новее
62+clSkyBlue | Небесно-голубой | TColor($F0CAA6); | Lazarus 1.2 и новее
63+
6464## Системные цвета
6565
6666### Пример: clInfoBk, clInfoText
6767
68-Системные цвета - это цветовые константы с особым значением. Их реальное значение зависит от контекста и темы. Они не являются просто цветом. Например, **clInfoBk**:
69-
70-``` pascal
68+Системные цвета - это цветовые константы с особым значением. Их реальное значение зависит от контекста и темы. Они не являются просто цветом. Например, **clInfoBk** :
69+```
7170Form1.Canvas.Brush.Color:=clInfoBk; // используем цвет кисти по умолчанию для фона в окнах подсказок
72-Form1.Canvas.FillRect(10,10,50,50);
71+ Form1.Canvas.FillRect(10,10,50,50);
7372```
7473
75-Окно подсказок в MS Windows может иметь белый фон, поэтому вышеприведенный цвет будет отображаться белым. В Linux/gtk2 это может быть металлическая текстура, поэтому вышеприведенный будет рисовать текстуру. Если вы хотите поместить какой-либо текст в это окно, вам понадобится соответствующий контрастный цвет, например, **clInfoText**, иначе ваш текст может быть нечитаемым для пользователя. Например:
76-
77-``` pascal
74+Окно подсказок в MS Windows может иметь белый фон, поэтому вышеприведенный цвет будет отображаться белым. В Linux/gtk2 это может быть металлическая текстура, поэтому вышеприведенный будет рисовать текстуру. Если вы хотите поместить какой-либо текст в это окно, вам понадобится соответствующий контрастный цвет, например, **clInfoText** , иначе ваш текст может быть нечитаемым для пользователя. Например:
75+```
7876Form1.Canvas.Brush.Color:=clInfoBk; // используем цвет кисти по умолчанию для фона в окнах подсказок
79-Form1.Canvas.FillRect(10,10,50,50);
80-Form1.Canvas.Font.Color:=clInfoText; // используем цвет текста по умолчанию в окнах подсказок
81-Form1.Canvas.TextOut(10,10,'Hint');
77+ Form1.Canvas.FillRect(10,10,50,50);
78+ Form1.Canvas.Font.Color:=clInfoText; // используем цвет текста по умолчанию в окнах подсказок
79+ Form1.Canvas.TextOut(10,10,'Hint');
8280```
8381
84-Системный цвет **clInfoBk** не может использоваться для Pen.Color и Font.Color. Если вы сделаете это, результат не определен и зависит от набора виджетов и пользовательской темы. То же самое для **clInfoText**: он может использоваться только как Font.Color. Использование его в качестве Brush.Color может не работать. На данный момент все виджеты позволяют использовать его как Pen.Color.
82+Системный цвет **clInfoBk** не может использоваться для Pen.Color и Font.Color. Если вы сделаете это, результат не определен и зависит от набора виджетов и пользовательской темы. То же самое для **clInfoText** : он может использоваться только как Font.Color. Использование его в качестве Brush.Color может не работать. На данный момент все виджеты позволяют использовать его как Pen.Color.
8583
8684### Изменения темы
8785
88-Когда пользователь переключает тему, системные цвета меняются. **ClInfoBk** может измениться с белого на синий или с цвета на текстуру. Это изменение произойдет, когда вы назначите новый дескриптор кисти. Имейте в виду, что простое присвоение `Brush.Color:=clInfoBk` не назначает дескриптор кисти. Дескриптор кисти назначается в процессе использования. Например:
89-
90-``` pascal
86+Когда пользователь переключает тему, системные цвета меняются. **ClInfoBk** может измениться с белого на синий или с цвета на текстуру. Это изменение произойдет, когда вы назначите новый дескриптор кисти. Имейте в виду, что простое присвоение `Brush.Color:=clInfoBk` не назначает дескриптор кисти. Дескриптор кисти назначается в процессе использования. Например:
87+```
9188Form1.Canvas.Brush.Color:=clInfoBk; // это не создаст новый дескриптор кисти
92-Form1.Canvas.FillRect(10,10,50,50); // а это создаст дескриптор кисти с текущей активной кистью темы для окон подсказок
93-...
94-// если тема меняется в этот момент, Brush.Handle все еще заполнен старыми значениями
95-...
96-Form1.Canvas.FillRect(10,10,50,50); // это все еще будет рисоваться кистью старой темы
97-Form1.Canvas.Brush.Color:=clInfoBk; // присвоение старого значения не создаст новый дескриптор кисти
98-Form1.Canvas.FillRect(10,10,50,50); // это все еще будет рисоваться кистью старой темы
99-Form1.Canvas.Brush.Color:=clRed; // присвоение нового цвета, старый Handle недействителен
100-Form1.Canvas.Brush.Color:=clInfoBk; // присвоение нового цвета, старый Handle недействителен
101-Form1.Canvas.FillRect(10,10,50,50); // это создаст новый дескриптор и нарисует новую тему
89+ Form1.Canvas.FillRect(10,10,50,50); // а это создаст дескриптор кисти с текущей активной кистью темы для окон подсказок
90+ ...
91+ // если тема меняется в этот момент, Brush.Handle все еще заполнен старыми значениями
92+ ...
93+ Form1.Canvas.FillRect(10,10,50,50); // это все еще будет рисоваться кистью старой темы
94+ Form1.Canvas.Brush.Color:=clInfoBk; // присвоение старого значения не создаст новый дескриптор кисти
95+ Form1.Canvas.FillRect(10,10,50,50); // это все еще будет рисоваться кистью старой темы
96+ Form1.Canvas.Brush.Color:=clRed; // присвоение нового цвета, старый Handle недействителен
97+ Form1.Canvas.Brush.Color:=clInfoBk; // присвоение нового цвета, старый Handle недействителен
98+ Form1.Canvas.FillRect(10,10,50,50); // это создаст новый дескриптор и нарисует новую тему
10299```
103100
104101### Таблица системных цветов
105102
106-В следующей таблице перечислены системные цвета и их значение. Использование их вне описанной области неоднозначно, и результат зависит от набора виджетов и темы. Например, **clDefault** - обычная кисть фона используемого контекста устройства. Если вы хотите рисовать элементы кнопок на своих собственных элементах управления, используйте функции рисования модуля **Themes**.
107-
108-**Константа**
109-
110-**Определение LCL**
111-
112-**Delphi notes**
113-
114-**Поддерживаемые наборы виджетов**
115-
116-clNone
117-
118-Обозначает «не раскрашивать». Использование его в качестве цвета элемента управления не определено. Элемент управления не станет прозрачным.
119-
120-\-
121-
122-все
123-
124-clDefault
125-
126-Означает, что применительно к кисти будет использоваться обычный фон целевого DC (контекст устройства).
127-
128-- На холсте формы *FillRect* закрашивает прямоугольную область, заполненную обычным фоном стандартного окна. Это то, что определяет набор виджетов и тема. Это может быть серый цвет, или градиент, или изображение.
129-- Использование clDefault на холсте TListBox будет рисовать с нормальным фоном, который обычно белый в Windows. Таким образом, в TListBox clDefault совпадает с clWindow.
130-- При использовании его в качестве цвета пера будет задействован цвет линии по умолчанию для контекста устройства.
131-- При использование его в качестве цвета шрифта будет задействован обычный цвет текста контекста устройства.
132-
133-\| -
134-
135-все
136-
137-clScrollBar
138-
139-Тело полосы прокрутки
140-
141-\-
142-
143-все
144-
145-clBackground
146-
147-Цвет фона рабочего стола
148-
149-\-
150-
151-все
152-
153-clActiveCaption
154-
155-Строка заголовка активного окна
156-
157-\-
158-
159-никакой
160-
161-clInactiveCaption
162-
163-Строка заголовка неактивного окна
164-
165-\-
166-
167-никакой
168-
169-clMenu
170-
171-Обычный цвет пункта меню
172-
173-\-
174-
175-никакой
176-
177-clWindow
178-
179-Обычная фоновая кисть невыделенного текста. Определено для элементов управления, таких как TEdit, TComboBox, TMemo, TListBox, TTreeView.
180-
181-\-
182-
183-никакой
184-
185-clWindowFrame
186-
187-Цвет рамки вокруг окна
188-
189-\-
190-
191-никакой
192-
193-clMenuText
194-
195-Цвет шрифта для использования вместе с clMenu
196-
197-\-
198-
199-никакой
200-
201-clWindowText
202-
203-Цвет шрифта для использования вместе с clWindow
204-
205-\-
206-
207-никакой
208-
209-clCaptionText
210-
211-Цвет строки заголовка активного окна
212-
213-\-
214-
215-никакой
216-
217-clActiveBorder
218-
219-?
220-
221-\-
222-
223-никакой
224-
225-clInactiveBorder
226-
227-?
228-
229-\-
230-
231-никакой
232-
233-clAppWorkspace
234-
235-Фон формы MDIMain
236-
237-\-
238-
239-никакой
240-
241-clHighlight
242-
243-Цвет кисти выбранного элемента
244-
245-\-
246-
247-никакой
248-
249-clHighlightText
250-
251-Цвет шрифта выделенного текста (использовать вместе с clHighligh).
252-
253-\-
254-
255-никакой
256-
257-clBtnFace
258-
259-Фон кнопки
260-
261-\-
262-
263-никакой
264-
265-clBtnShadow
266-
267-Цвет тени кнопки (внизу справа), используемый для достижения эффекта 3D
268-
269-\-
270-
271-никакой
272-
273-clGrayText
274-
275-Цвет шрифта отключенного элемента
276-
277-\-
278-
279-никакой
280-
281-clBtnText
282-
283-Цвет шрифта кнопки для использования вместе с clBtnFace
284-
285-\-
286-
287-никакой
288-
289-clInactiveCaptionText
290-
291-Цвет текста заголовка неактивного окна
292-
293-\-
294-
295-никакой
296-
297-clBtnHighlight
298-
299-Цвет подсветки кнопки (вверху слева), используемый для достижения эффекта 3D
300-
301-\-
302-
303-никакой
304-
305-cl3DDkShadow
306-
307-?
308-
309-\-
310-
311-никакой
312-
313-cl3DLight
314-
315-?
316-
317-\-
318-
319-никакой
320-
321-clInfoText
322-
323-Цвет шрифта для окон с подсказками. Используется вместе с clInfoBk
324-
325-\-
326-
327-все
328-
329-clInfoBk
330-
331-Цвет кисти для окон с подсказками. Используется вместе с clInfoText
332-
333-\-
334-
335-все
336-
337-clHotLight
338-
339-?
340-
341-\-
342-
343-никакой
344-
345-clGradientActiveCaption
346-
347-Второй цвет, используемый для создания градиента строки заголовка активного окна
348-
349-\-
350-
351-никакой
352-
353-clGradientInactiveCaption
354-
355-Второй цвет, используемый для создания градиента строки заголовка неактивного окна
356-
357-\-
358-
359-никакой
360-
361-clMenuHighlight
362-
363-Цвет фона выбранного пункта меню
364-
365-\-
366-
367-никакой
368-
369-clMenuBar
370-
371-Цвет фона строки меню
372-
373-\-
374-
375-никакой
376-
377-clForm
378-
379-?
380-
381-\-
382-
383-никакой
384-
385-clColorDesktop
386-
387-?
388-
389-\-
390-
391-никакой
392-
393-cl3DFace
394-
395-?
396-
397-\-
398-
399-никакой
400-
401-cl3DShadow
402-
403-?
404-
405-\-
406-
407-никакой
408-
409-cl3DHiLight
410-
411-?
412-
413-\-
414-
415-никакой
416-
417-clBtnHiLight
418-
419-Такой же как у clBtnHighlight
420-
421-\-
422-
423-никакой
103+В следующей таблице перечислены системные цвета и их значение. Использование их вне описанной области неоднозначно, и результат зависит от набора виджетов и темы. Например, **clDefault** \- обычная кисть фона используемого контекста устройства. Если вы хотите рисовать элементы кнопок на своих собственных элементах управления, используйте функции рисования модуля **Themes**.
424104
105+Константа | Определение LCL | Delphi notes | Поддерживаемые наборы виджетов
106+---|---|---|---
107+clNone | Обозначает «не раскрашивать». Использование его в качестве цвета элемента управления не определено. Элемент управления не станет прозрачным. | - | все
108+clDefault | Означает, что применительно к кисти будет использоваться обычный фон целевого DC (контекст устройства). На холсте формы _FillRect_ закрашивает прямоугольную область, заполненную обычным фоном стандартного окна. Это то, что определяет набор виджетов и тема. Это может быть серый цвет, или градиент, или изображение. · Использование clDefault на холсте TListBox будет рисовать с нормальным фоном, который обычно белый в Windows. Таким образом, в TListBox clDefault совпадает с clWindow. · При использовании его в качестве цвета пера будет задействован цвет линии по умолчанию для контекста устройства. · При использование его в качестве цвета шрифта будет задействован обычный цвет текста контекста устройства. | - | все
109+clScrollBar | Тело полосы прокрутки | - | все
110+clBackground | Цвет фона рабочего стола | - | все
111+clActiveCaption | Строка заголовка активного окна | - | никакой
112+clInactiveCaption | Строка заголовка неактивного окна | - | никакой
113+clMenu | Обычный цвет пункта меню | - | никакой
114+clWindow | Обычная фоновая кисть невыделенного текста. Определено для элементов управления, таких как TEdit, TComboBox, TMemo, TListBox, TTreeView. | - | никакой
115+clWindowFrame | Цвет рамки вокруг окна | - | никакой
116+clMenuText | Цвет шрифта для использования вместе с clMenu | - | никакой
117+clWindowText | Цвет шрифта для использования вместе с clWindow | - | никакой
118+clCaptionText | Цвет строки заголовка активного окна | - | никакой
119+clActiveBorder | ? | - | никакой
120+clInactiveBorder | ? | - | никакой
121+clAppWorkspace | Фон формы MDIMain | - | никакой
122+clHighlight | Цвет кисти выбранного элемента | - | никакой
123+clHighlightText | Цвет шрифта выделенного текста (использовать вместе с clHighligh). | - | никакой
124+clBtnFace | Фон кнопки | - | никакой
125+clBtnShadow | Цвет тени кнопки (внизу справа), используемый для достижения эффекта 3D | - | никакой
126+clGrayText | Цвет шрифта отключенного элемента | - | никакой
127+clBtnText | Цвет шрифта кнопки для использования вместе с clBtnFace | - | никакой
128+clInactiveCaptionText | Цвет текста заголовка неактивного окна | - | никакой
129+clBtnHighlight | Цвет подсветки кнопки (вверху слева), используемый для достижения эффекта 3D | - | никакой
130+cl3DDkShadow | ? | - | никакой
131+cl3DLight | ? | - | никакой
132+clInfoText | Цвет шрифта для окон с подсказками. Используется вместе с clInfoBk | - | все
133+clInfoBk | Цвет кисти для окон с подсказками. Используется вместе с clInfoText | - | все
134+clHotLight | ? | - | никакой
135+clGradientActiveCaption | Второй цвет, используемый для создания градиента строки заголовка активного окна | - | никакой
136+clGradientInactiveCaption | Второй цвет, используемый для создания градиента строки заголовка неактивного окна | - | никакой
137+clMenuHighlight | Цвет фона выбранного пункта меню | - | никакой
138+clMenuBar | Цвет фона строки меню | - | никакой
139+clForm | ? | - | никакой
140+clColorDesktop | ? | - | никакой
141+cl3DFace | ? | - | никакой
142+cl3DShadow | ? | - | никакой
143+cl3DHiLight | ? | - | никакой
144+clBtnHiLight | Такой же как у clBtnHighlight | - | никакой
145+
425146### Нахождение значений RGB системного цвета
426147
427-Используйте функцию `ColorToRGB` (в модуле `Graphics`), чтобы определить компоненты rgb системного цвета. Эта функция определяет, является ли цвет системным цветом, и, если это так, находится ли системный цвет в цветовой гамме текущей темы. Возвращаемое значение типа [[Longint]] можно понимать как обычный цвет:
428-
429-``` pascal
148+Используйте функцию `ColorToRGB` (в модуле `Graphics`), чтобы определить компоненты rgb системного цвета. Эта функция определяет, является ли цвет системным цветом, и, если это так, находится ли системный цвет в цветовой гамме текущей темы. Возвращаемое значение типа [[Longint]] можно понимать как обычный цвет:
149+```
430150// в этом примере имеется TColorBox на форме и используется обработчик OnChange для TColorbox:
431-procedure TForm1.ColorBox1Change(Sender: TObject);
432-var
433- c: TColor;
434-begin
435- c := ColorToRGB(ColorBox1.Selected);
436- Caption := Format('R%d G%d B%d', [Red(c), Green(c), Blue(c)]);
437-end;
151+ procedure TForm1.ColorBox1Change(Sender: TObject);
152+ var
153+ c: TColor;
154+ begin
155+ c := ColorToRGB(ColorBox1.Selected);
156+ Caption := Format('R%d G%d B%d', [Red(c), Green(c), Blue(c)]);
157+ end;
438158```
439159
440160## Рисование элементов соответственно теме на ваших пользовательских элементах управления
441161
442-Модуль **Themes** предоставляет функции для рисования отдельных элементов стандартных элементов управления. Например, чтобы нарисовать знак раскрытия узла, например, [[TTreeView]], используйте следующий код:
443-
444-``` pascal
162+Модуль **Themes** предоставляет функции для рисования отдельных элементов стандартных элементов управления. Например, чтобы нарисовать знак раскрытия узла, например, [[TTreeView]], используйте следующий код:
163+```
445164uses Themes;
446-
447-...
448-
449-procedure TYourCustomControl.Paint;
450-const
451- PlusMinusDetail: array[Boolean {Hot}, Boolean {Expanded}] of TThemedTreeview =
452- (
453- (ttGlyphClosed, ttGlyphOpened),
454- (ttHotGlyphClosed, ttHotGlyphOpened)
455- );
456-var
457- Details: TThemedElementDetails;
458- R: TRect;
459- Collapse: boolean;
460-begin
461- ...
462- //рисуем знак раскрытия узла дерева соответственно теме
463- Details := ThemeServices.GetElementDetails(PlusMinusDetail[False, Collapse]);
464- R := Rect(ALeft, ATop, ARight + 1, ABottom + 1);
465- ThemeServices.DrawElement(Canvas.Handle, Details, R, nil);
466- ...
467-end;
165+
166+ ...
167+
168+ procedure TYourCustomControl.Paint;
169+ const
170+ PlusMinusDetail: array[Boolean {Hot}, Boolean {Expanded}] of TThemedTreeview =
171+ (
172+ (ttGlyphClosed, ttGlyphOpened),
173+ (ttHotGlyphClosed, ttHotGlyphOpened)
174+ );
175+ var
176+ Details: TThemedElementDetails;
177+ R: TRect;
178+ Collapse: boolean;
179+ begin
180+ ...
181+ //рисуем знак раскрытия узла дерева соответственно теме
182+ Details := ThemeServices.GetElementDetails(PlusMinusDetail[False, Collapse]);
183+ R := Rect(ALeft, ATop, ARight + 1, ABottom + 1);
184+ ThemeServices.DrawElement(Canvas.Handle, Details, R, nil);
185+ ...
186+ end;
468187```
469188
470189## См. также
471190
472-- [Цвета в Delphi](http://diversenok.ho.ua/articles/TColor)
473-- [Таблица названий цветов в английском языке](http://www.falsefriends.ru/english-colors.htm)
191+ * [Цвета в Delphi](<http://diversenok.ho.ua/articles/TColor>)
192+ * [Таблица названий цветов в английском языке](<http://www.falsefriends.ru/english-colors.htm>)
474193
475194---
476-*From the Free Pascal wiki, page "Colors/ru", as it stood on 2020-06-03 after a change by Zoltanleo, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
195+*From the Free Pascal wiki, page "Colors/ru", as the Internet Archive kept it on 2025-02-07, last changed on 2024-10-07. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history