Sign in Join
Wiki copytemporary

Colors/fr: what changed

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

OldNewLine
11# Vue d'ensemble
22
33Dans la LCL, **TColor** est le type couleur standard. Il est compatible avec le **TColor** de Delphi. **TColor** peut représenter *soit* une valeur RGB (3x8bits), *soit* une couleur *système* comme *crDefault*. La LCL peut aussi travailler avec le système fpImage qui emploie le type **TFPColor** qui est du RGBA (4x16bits), et non du RGB (3x8bits comme **TColor**).
44
55## Conversions entre **TColor** et une valeur RGB
66
77L'unité **Graphics** fournit les fonctions suivantes :
88
99``` pascal
1010function Blue(rgb: TColor): BYTE; // ne fonctionne pas avec les couleurs système
1111function Green(rgb: TColor): BYTE; // ne fonctionne pas avec les couleurs système
1212function Red(rgb: TColor): BYTE; // ne fonctionne pas avec les couleurs système
1313function RGBToColor(R, G, B: Byte): TColor;
1414procedure RedGreenBlue(rgb: TColor; out Red, Green, Blue: Byte); // ne fonctionne pas avec les couleurs système
1515function FPColorToTColor(const FPColor: TFPColor): TColor;
1616function TColorToFPColor(const c: TColor): TFPColor; // ne fonctionne pas avec les couleurs système
1717function IsSysColor(AColor: TColorRef): Boolean;
1818```
1919
2020## Conversion entre **TColor** et une chaîne de caractères
2121
2222Fonctions pour convertir des chaînes comme "25500" ou "\$AA0088" ou "clNavy" vers le type **TColor**:
2323
2424- StringToColor
2525- StringToColorDef
2626
2727Pour convertir **TColor** vers une chaîne qui peut être adaptée à la langue de travail:
2828
2929- ColorToString
3030
3131# Table des couleurs standard
3232
3333Environ une vingtaine de constantes de couleur prédéfinies sont fournies. Elles sont compatibles avec Delphi:
3434
3535| Constante de couleur | Signification | Valeur hexadécimale pour emploi avec **TColor** | Exemple |
3636|----|----|----|----|
3737| clBlack | Noir | TColor(\$000000); | |
3838| clMaroon | Marron | TColor(\$000080); | |
3939| clGreen | Vert | TColor(\$008000); | |
4040| clOlive | Vert Olive | TColor(\$008080); | |
4141| clNavy | Bleu marine | TColor(\$800000); | |
4242| clPurple | Violet | TColor(\$800080); | |
4343| clTeal | Bleu canard | TColor(\$808000); | |
4444| clGray | Gris | TColor(\$808080); | |
4545| clSilver | Argent | TColor(\$C0C0C0); | |
4646| clRed | Rouge | TColor(\$0000FF); | |
4747| clLime | Vert Citron | TColor(\$00FF00); | |
4848| clYellow | Jaune | TColor(\$00FFFF); | |
4949| clBlue | Bleu | TColor(\$FF0000); | |
5050| clFuchsia | Fuchsia | TColor(\$FF00FF); | |
5151| clAqua | Bleu vert | TColor(\$FFFF00); | |
5252| clLtGray | Gris clair | TColor(\$C0C0C0); | alias de clSilver |
5353| clDkGray | Gris foncé | TColor(\$808080); | alias de clGray |
5454| clWhite | Blanc | TColor(\$FFFFFF); | |
5555| clCream | Crème | TColor(\$F0FBFF); | |
5656| clMedGray | Gris Moyen | TColor(\$A4A0A0); | |
5757| clMoneyGreen | Vert menthe | TColor(\$C0DCC0); | |
5858| clSkyBlue | Bleu ciel | TColor(\$F0CAA6); | |
5959
6060# Couleurs système
6161
6262## Exemples : clInfoBk, clInfoText
6363
6464Les couleurs système sont des constantes avec une signification particulière. Leur valeur réelle dépend du contexte et du thème. Ce ne sont pas de simples couleurs. Par exemple **clInfoBk**:
6565
6666``` pascal
6767Form1.Canvas.Brush.Color:=clInfoBk; // use the default background brush of a hint window
6868Form1.Canvas.FillRect(10,10,50,50);
6969```
7070
7171Une bulle d'aide dans MS Windows ayant un fond blanc, le code ci-dessus va dessiner en blanc. Dans Linux/gtk2, ce code pouvant correspondre à une texture métallique, le code va dessiner la texture. Si vous voulez placer du texte dessus, vous avez besoin d'une couleur correspondante comme **clInfoText**, sinon votre texte sera illisible pour l'utilisateur. Par exemple:
7272
7373``` pascal
7474Form1.Canvas.Brush.Color:=clInfoBk; // utilise le fond par défaut d'une bulle d'aide
7575Form1.Canvas.FillRect(10,10,50,50);
7676Form1.Canvas.Font.Color:=clInfoText; // utilise la couleur du ttexte par défaut d'une bulle d'aide
7777Form1.Canvas.TextOut(10,10,'Hint');
7878```
7979
8080La couleur système **clInfoBk** ne peut pas être utilisée avec Pen.Color ni pour Font.Color. Si vous faites ainsi, le résultat est indéfini et dépend du widgetset et du thème de l'utilisateur.
8181
8282Idem pour **clInfoText**: il ne peut être utilisé que comme une Font.Color. L'utiliser comme Brush.Color peut ne pas convenir. Actuellement, tous les widgetsets permettent de l'utiliser comme Pen.Color aussi.
8383
8484## Changements de thème
8585
8686Quand l'utilisateur bascule le thème, les couleurs système changent. Une **clInfoBk** peut passer du blanc au vert ou d'une couleur à une texture. Ce changement surgira quand vous allouerez une nouveau handle de brosse. Gardez à l'esprit que la simple affectation Brush.Color:=clInfoBk n'alloue pas un handle de brosse. Le handle est alloué à l'utilisation. Par exemple:
8787
8888``` pascal
8989Form1.Canvas.Brush.Color:=clInfoBk; // Cela ne créera pas une nouveau handle de brosse
9090Form1.Canvas.FillRect(10,10,50,50); // Cela va le créer avec la brosse du thème actif pour les bulles d'aide
9191...
9292// Si le thème change maintenant, le Brush.Handle est toujours alloué avec les anciennes valeurs
9393...
9494Form1.Canvas.FillRect(10,10,50,50); // cela va peindre avec la brosse de l'ancien thème
9595Form1.Canvas.Brush.Color:=clInfoBk; // affecter l'ancienne valeur ne créera pas un nouveau handle de brosse
9696Form1.Canvas.FillRect(10,10,50,50); // cela va peindre avec la brosse de l'ancien thème
9797Form1.Canvas.Brush.Color:=clRed; // affectant une nouvelle couleur, l'ancien handle est invalide
9898Form1.Canvas.Brush.Color:=clInfoBk; // affectant une nouvelle couleur, l'ancien handle est invalide
9999Form1.Canvas.FillRect(10,10,50,50); // cela créera un nouveau handle et peindra avec le nouveau thème
100100```
101101
102102## Table des couleurs système
103103
104104La table suivante liste les couleurs système et leur sens. Les employer en dehors du champ de leur définition est indéfini et le résultat dépend du widgetset et du thème. Par exemple, **clDefault** est la brosse du fond normale du contexte de périphérique utilisé. Si vous voulez peindre des éléments de boutons sur vos contrôles personnalisés, employez les fonctions de dessin de l'unité **Themes**.
105105
106-<table>
107-<thead>
108-<tr>
109-<th><p>Constante</p></th>
110-<th><p>Définition LCL</p></th>
111-<th><p>Notes Delphi</p></th>
112-<th><p>Widgetset supporté</p></th>
113-</tr>
114-</thead>
115-<tbody>
116-<tr>
117-<td><p>clNone</p></td>
118-<td><p>Indique "ne pas peindre". L'employer comme couleur de contrôle est indéfini. Le contrôle ne deviendra pas transparent.</p></td>
119-<td><p>-</p></td>
120-<td><p>Tous</p></td>
121-</tr>
122-<tr>
123-<td><p>clDefault</p></td>
124-<td><p>L'employer pour une brosse revient à employer la couleur de fond normal pour le contexte de périphérique cible.</p>
125-<ul>
126-<li>Sur le canevas d'une fiche, un <em>FillRect</em> peindra une surface rectangulaire remplie avec le fond normal d'une fenêtre standard. Cela quelque puissent définir le widgetset et le thème. Cela peut être la couleur grise, un dégradé ou une image.</li>
127-<li>Sur le canevas d'une TListBox, cela peindra avec le fond normal, qui est souvent blanc dans Windows. Ainsi, pour une TListBox, clDefault est identique à clWindow.</li>
128-<li>L'utiliser comme couleur de crayon utilisera la couleur de ligne par défaut pour le contexte de périphérique.</li>
129-<li>L'utiliser comme couleur de fonte utilisera la couleur de texte par défaut pour le contexte de périphérique.</li>
130-</ul></td>
131-<td><p>| -</p></td>
132-<td><p>Tous</p></td>
133-</tr>
134-<tr>
135-<td><p>clScrollBar</p></td>
136-<td><p>Couleur du corps de barre de défilement</p></td>
137-<td><p>-</p></td>
138-<td><p>Tous</p></td>
139-</tr>
140-<tr>
141-<td><p>clBackground</p></td>
142-<td><p>?</p></td>
143-<td><p>-</p></td>
144-<td><p>Tous</p></td>
145-</tr>
146-<tr>
147-<td><p>clActiveCaption</p></td>
148-<td><p>Barre de titre de la fenêtre active</p></td>
149-<td><p>-</p></td>
150-<td><p>Aucun</p></td>
151-</tr>
152-<tr>
153-<td><p>clInactiveCaption</p></td>
154-<td><p>Barre de titre de fenêtre inactive</p></td>
155-<td><p>-</p></td>
156-<td><p>Aucun</p></td>
157-</tr>
158-<tr>
159-<td><p>clMenu</p></td>
160-<td><p>Couleur de fond d'article de menu ordinaire</p></td>
161-<td><p>-</p></td>
162-<td><p>Aucun</p></td>
163-</tr>
164-<tr>
165-<td><p>clWindow</p></td>
166-<td><p>La brosse de fond normal d'un texte non sélectionné. Défini pour des contrôles comme TEdit, TComboBox, TMemo, TListBox, TTreeView.</p></td>
167-<td><p>-</p></td>
168-<td><p>Aucun</p></td>
169-</tr>
170-<tr>
171-<td><p>clWindowFrame</p></td>
172-<td><p>Couleur du cadre autour de la fenêtre</p></td>
173-<td><p>-</p></td>
174-<td><p>Aucun</p></td>
175-</tr>
176-<tr>
177-<td><p>clMenuText</p></td>
178-<td><p>Couleur de police pour les menus à employer avec clMenu</p></td>
179-<td><p>-</p></td>
180-<td><p>Aucun</p></td>
181-</tr>
182-<tr>
183-<td><p>clWindowText</p></td>
184-<td><p>Couleur de police d'un texte non sélectionné à employer avec clWindow</p></td>
185-<td><p>-</p></td>
186-<td><p>Aucun</p></td>
187-</tr>
188-<tr>
189-<td><p>clCaptionText</p></td>
190-<td><p>Couleur de texte de la barre de titre de la fenêtre active</p></td>
191-<td><p>-</p></td>
192-<td><p>Aucun</p></td>
193-</tr>
194-<tr>
195-<td><p>clActiveBorder</p></td>
196-<td><p>?</p></td>
197-<td><p>-</p></td>
198-<td><p>Aucun</p></td>
199-</tr>
200-<tr>
201-<td><p>clInactiveBorder</p></td>
202-<td><p>?</p></td>
203-<td><p>-</p></td>
204-<td><p>Aucun</p></td>
205-</tr>
206-<tr>
207-<td><p>clAppWorkspace</p></td>
208-<td><p>Fond de la fenêtre principale en MDI</p></td>
209-<td><p>-</p></td>
210-<td><p>Aucun</p></td>
211-</tr>
212-<tr>
213-<td><p>clHighlight</p></td>
214-<td><p>La couleur de brosse d'un élement sélectionné</p></td>
215-<td><p>-</p></td>
216-<td><p>Aucun</p></td>
217-</tr>
218-<tr>
219-<td><p>clHighlightText</p></td>
220-<td><p>Couleur de police de texte sélectionné (à employer avec clHighligh).</p></td>
221-<td><p>-</p></td>
222-<td><p>Aucun</p></td>
223-</tr>
224-<tr>
225-<td><p>clBtnFace</p></td>
226-<td><p>Fond de bouton</p></td>
227-<td><p>-</p></td>
228-<td><p>Aucun</p></td>
229-</tr>
230-<tr>
231-<td><p>clBtnShadow</p></td>
232-<td><p>Couleur de l'ombre d'un bouton (en bas à droite) utilisé pour réaliser un effet 3D</p></td>
233-<td><p>-</p></td>
234-<td><p>Aucun</p></td>
235-</tr>
236-<tr>
237-<td><p>clGrayText</p></td>
238-<td><p>Couleur de police d'un élément désactivé</p></td>
239-<td><p>-</p></td>
240-<td><p>Aucun</p></td>
241-</tr>
242-<tr>
243-<td><p>clBtnText</p></td>
244-<td><p>Couleur de police de bouton à utiliser avec clBtnFace</p></td>
245-<td><p>-</p></td>
246-<td><p>Aucun</p></td>
247-</tr>
248-<tr>
249-<td><p>clInactiveCaptionText</p></td>
250-<td><p>Couleur de texte du titre d'une fenêtre inactive</p></td>
251-<td><p>-</p></td>
252-<td><p>Aucun</p></td>
253-</tr>
254-<tr>
255-<td><p>clBtnHighlight</p></td>
256-<td><p>Couleur de surlignement de bouton (en haut à gauche) utilisé pour réaliser un effet 3D</p></td>
257-<td><p>-</p></td>
258-<td><p>Aucun</p></td>
259-</tr>
260-<tr>
261-<td><p>cl3DDkShadow</p></td>
262-<td><p>?</p></td>
263-<td><p>-</p></td>
264-<td><p>Aucun</p></td>
265-</tr>
266-<tr>
267-<td><p>cl3DLight</p></td>
268-<td><p>?</p></td>
269-<td><p>-</p></td>
270-<td><p>Aucun</p></td>
271-</tr>
272-<tr>
273-<td><p>clInfoText</p></td>
274-<td><p>Couleur de police pour les bulles d'aide. A employer avec clInfoBk</p></td>
275-<td><p>-</p></td>
276-<td><p>Tous</p></td>
277-</tr>
278-<tr>
279-<td><p>clInfoBk</p></td>
280-<td><p>Couleur de police pour les bulles d'aide. A employer avec clInfoText</p></td>
281-<td><p>-</p></td>
282-<td><p>Tous</p></td>
283-</tr>
284-<tr>
285-<td><p>clHotLight</p></td>
286-<td><p>?</p></td>
287-<td><p>-</p></td>
288-<td><p>Aucun</p></td>
289-</tr>
290-<tr>
291-<td><p>clGradientActiveCaption</p></td>
292-<td><p>La seconde couleur utilisée pour faire le dégradé de la barre de titre de la fenêtre active</p></td>
293-<td><p>-</p></td>
294-<td><p>Aucun</p></td>
295-</tr>
296-<tr>
297-<td><p>clGradientInactiveCaption</p></td>
298-<td><p>La seconde couleur utilisée pour faire le dégradé de la barre de titre de fenêtre inactive</p></td>
299-<td><p>-</p></td>
300-<td><p>Aucun</p></td>
301-</tr>
302-<tr>
303-<td><p>clMenuHighlight</p></td>
304-<td><p>La couleur de fond d'un article de menu sélectionné</p></td>
305-<td><p>-</p></td>
306-<td><p>Aucun</p></td>
307-</tr>
308-<tr>
309-<td><p>clMenuBar</p></td>
310-<td><p>Couleur de fond d'une barre de menu</p></td>
311-<td><p>-</p></td>
312-<td><p>Aucun</p></td>
313-</tr>
314-<tr>
315-<td><p>clForm</p></td>
316-<td><p>?</p></td>
317-<td><p>-</p></td>
318-<td><p>Aucun</p></td>
319-</tr>
320-<tr>
321-<td><p>clColorDesktop</p></td>
322-<td><p>?</p></td>
323-<td><p>-</p></td>
324-<td><p>Aucun</p></td>
325-</tr>
326-<tr>
327-<td><p>cl3DFace</p></td>
328-<td><p>?</p></td>
329-<td><p>-</p></td>
330-<td><p>Aucun</p></td>
331-</tr>
332-<tr>
333-<td><p>cl3DShadow</p></td>
334-<td><p>?</p></td>
335-<td><p>-</p></td>
336-<td><p>Aucun</p></td>
337-</tr>
338-<tr>
339-<td><p>cl3DHiLight</p></td>
340-<td><p>?</p></td>
341-<td><p>-</p></td>
342-<td><p>Aucun</p></td>
343-</tr>
344-<tr>
345-<td><p>clBtnHiLight</p></td>
346-<td><p>Comme clBtnHighlight</p></td>
347-<td><p>-</p></td>
348-<td><p>Aucun</p></td>
349-</tr>
350-</tbody>
351-</table>
106+**Constante**
107+
108+**Définition LCL**
109+
110+**Notes Delphi**
111+
112+**Widgetset supporté**
113+
114+clNone
115+
116+Indique "ne pas peindre". L'employer comme couleur de contrôle est indéfini. Le contrôle ne deviendra pas transparent.
117+
118+\-
119+
120+Tous
121+
122+clDefault
123+
124+L'employer pour une brosse revient à employer la couleur de fond normal pour le contexte de périphérique cible.
125+
126+- Sur le canevas d'une fiche, un *FillRect* peindra une surface rectangulaire remplie avec le fond normal d'une fenêtre standard. Cela quelque puissent définir le widgetset et le thème. Cela peut être la couleur grise, un dégradé ou une image.
127+- Sur le canevas d'une TListBox, cela peindra avec le fond normal, qui est souvent blanc dans Windows. Ainsi, pour une TListBox, clDefault est identique à clWindow.
128+- L'utiliser comme couleur de crayon utilisera la couleur de ligne par défaut pour le contexte de périphérique.
129+- L'utiliser comme couleur de fonte utilisera la couleur de texte par défaut pour le contexte de périphérique.
130+
131+\| -
132+
133+Tous
134+
135+clScrollBar
136+
137+Couleur du corps de barre de défilement
138+
139+\-
140+
141+Tous
142+
143+clBackground
144+
145+?
146+
147+\-
148+
149+Tous
150+
151+clActiveCaption
152+
153+Barre de titre de la fenêtre active
154+
155+\-
156+
157+Aucun
158+
159+clInactiveCaption
160+
161+Barre de titre de fenêtre inactive
162+
163+\-
164+
165+Aucun
166+
167+clMenu
168+
169+Couleur de fond d'article de menu ordinaire
170+
171+\-
172+
173+Aucun
174+
175+clWindow
176+
177+La brosse de fond normal d'un texte non sélectionné. Défini pour des contrôles comme TEdit, TComboBox, TMemo, TListBox, TTreeView.
178+
179+\-
180+
181+Aucun
182+
183+clWindowFrame
184+
185+Couleur du cadre autour de la fenêtre
186+
187+\-
188+
189+Aucun
190+
191+clMenuText
192+
193+Couleur de police pour les menus à employer avec clMenu
194+
195+\-
196+
197+Aucun
198+
199+clWindowText
200+
201+Couleur de police d'un texte non sélectionné à employer avec clWindow
202+
203+\-
204+
205+Aucun
206+
207+clCaptionText
208+
209+Couleur de texte de la barre de titre de la fenêtre active
210+
211+\-
212+
213+Aucun
214+
215+clActiveBorder
216+
217+?
218+
219+\-
220+
221+Aucun
222+
223+clInactiveBorder
224+
225+?
226+
227+\-
228+
229+Aucun
230+
231+clAppWorkspace
232+
233+Fond de la fenêtre principale en MDI
234+
235+\-
236+
237+Aucun
238+
239+clHighlight
240+
241+La couleur de brosse d'un élement sélectionné
242+
243+\-
244+
245+Aucun
246+
247+clHighlightText
248+
249+Couleur de police de texte sélectionné (à employer avec clHighligh).
250+
251+\-
252+
253+Aucun
254+
255+clBtnFace
256+
257+Fond de bouton
258+
259+\-
260+
261+Aucun
262+
263+clBtnShadow
264+
265+Couleur de l'ombre d'un bouton (en bas à droite) utilisé pour réaliser un effet 3D
266+
267+\-
268+
269+Aucun
270+
271+clGrayText
272+
273+Couleur de police d'un élément désactivé
274+
275+\-
276+
277+Aucun
278+
279+clBtnText
280+
281+Couleur de police de bouton à utiliser avec clBtnFace
282+
283+\-
284+
285+Aucun
286+
287+clInactiveCaptionText
288+
289+Couleur de texte du titre d'une fenêtre inactive
290+
291+\-
292+
293+Aucun
294+
295+clBtnHighlight
296+
297+Couleur de surlignement de bouton (en haut à gauche) utilisé pour réaliser un effet 3D
298+
299+\-
300+
301+Aucun
302+
303+cl3DDkShadow
304+
305+?
306+
307+\-
308+
309+Aucun
310+
311+cl3DLight
312+
313+?
314+
315+\-
316+
317+Aucun
318+
319+clInfoText
320+
321+Couleur de police pour les bulles d'aide. A employer avec clInfoBk
322+
323+\-
324+
325+Tous
326+
327+clInfoBk
328+
329+Couleur de police pour les bulles d'aide. A employer avec clInfoText
330+
331+\-
332+
333+Tous
334+
335+clHotLight
336+
337+?
338+
339+\-
340+
341+Aucun
342+
343+clGradientActiveCaption
344+
345+La seconde couleur utilisée pour faire le dégradé de la barre de titre de la fenêtre active
346+
347+\-
348+
349+Aucun
350+
351+clGradientInactiveCaption
352+
353+La seconde couleur utilisée pour faire le dégradé de la barre de titre de fenêtre inactive
354+
355+\-
356+
357+Aucun
358+
359+clMenuHighlight
360+
361+La couleur de fond d'un article de menu sélectionné
362+
363+\-
364+
365+Aucun
366+
367+clMenuBar
368+
369+Couleur de fond d'une barre de menu
370+
371+\-
372+
373+Aucun
374+
375+clForm
376+
377+?
378+
379+\-
380+
381+Aucun
382+
383+clColorDesktop
384+
385+?
386+
387+\-
388+
389+Aucun
390+
391+cl3DFace
392+
393+?
394+
395+\-
396+
397+Aucun
398+
399+cl3DShadow
400+
401+?
402+
403+\-
404+
405+Aucun
406+
407+cl3DHiLight
408+
409+?
410+
411+\-
412+
413+Aucun
414+
415+clBtnHiLight
416+
417+Comme clBtnHighlight
418+
419+\-
420+
421+Aucun
352422
353423# Dessin d'élément de thème sur vos contrôles personnalisés
354424
355425L'unité **Themes** fournit des fonctions pour dessiner des éléments particuliers de contrôles standard. Par exemple, pour dessiner un signe d'expansion comme un **TTreeView** on utilise :
356426
357427``` pascal
358428uses Themes;
359429
360430...
361431
362432procedure TYourCustomControl.Paint;
363433const
364434 PlusMinusDetail: array[Boolean {Hot}, Boolean {Expanded}] of TThemedTreeview =
365435 (
366436 (ttGlyphClosed, ttGlyphOpened),
367437 (ttHotGlyphClosed, ttHotGlyphOpened)
368438 );
369439var
370440 Details: TThemedElementDetails;
371441 R: TRect;
372442 Collapse: boolean;
373443begin
374444 ...
375445 //dessine un signe d'expansion selon le thème.
376446 Details := ThemeServices.GetElementDetails(PlusMinusDetail[False, Collapse]);
377447 R := Rect(ALeft, ATop, ARight + 1, ABottom + 1);
378448 ThemeServices.DrawElement(Canvas.Handle, Details, R, nil);
379449 ...
380450end;
381451```
382452
383453---
384454*From the Free Pascal wiki, page "Colors/fr", as it stood on 2020-02-11 after a change by Trev, 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).*

Back to history