Sign in Join
Wiki copytemporary

Colors/fi: what changed

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

Title: Colors/fi

OldNewLine
1+## Värit
2+
3+[[LCL/fi|LCL]]:ssä TColor on vakiovärityyppi. Se on yhteensopiva [[Delphi/fi|Delphin]] TColorin kanssa. TColor voi edustaa joko RGB (3x8bit) arvoa tai järjestelmän väriä kuten clDefault. LCL voi toimia myös fpImage-järjestelmän kanssa, joka käyttää TFPColor-tyyppiä (joka on RGBA (4x16bit), ei RGB (3x8bit) kuten TColor).
4+
5+### Muunnokset TColor- ja RGB-arvojen välillä
6+
7+[[Unit/fi|käännösyksikkö (eli unit)]]**Graphics** tarjoaa seuraavat toiminnot:
8+
9+``` pascal
10+function Blue(rgb: TColor): BYTE; // does not work on system color
11+function Green(rgb: TColor): BYTE; // does not work on system color
12+function Red(rgb: TColor): BYTE; // does not work on system color
13+function RGBToColor(R, G, B: Byte): TColor;
14+procedure RedGreenBlue(rgb: TColor; out Red, Green, Blue: Byte); // does not work on system color
15+function FPColorToTColor(const FPColor: TFPColor): TColor;
16+function TColorToFPColor(const c: TColor): TFPColor; // does not work on system color
17+function IsSysColor(AColor: TColorRef): Boolean;
18+```
19+
20+### TColor:n muunto merkkijonoksi ja päinvastoin
21+
22+Seuraavat [[Function/fi|funktiot]] muuntaa merkkijonot kuten "25500", "[[Dollar sign/fi|$AA]]0088" tai "clNavy" TColoriksi:
23+
24+- StringToColor
25+- StringToColorDef
26+
27+Voit muuntaa TColorin arvon merkkijonoksi kuten "clNavy" tai "\$AA0002":
28+
29+- ColorToString
30+
31+### Muunna TColor HTML-merkkijonoksi \#rrggbb
32+
33+Katso koodi kohdasta [[Convert color to/from HTML]].
34+
35+### Taulukko vakioväreistä
36+
37+Tarjotaan noin 20 ennalta määritettyä värivakiota, jotka ovat [[Delphi]]-yhteensopivia:
38+
39+| Värivakio | Merkitys | [[Hexadecimal/fi|Heksadesimaalinen]] arvo käytettäväksi TColor:n kanssa | Esimerkki |
40+|----|----|----|----|
41+| clBlack | Black | TColor(\$000000); | |
42+| clMaroon | Maroon | TColor(\$000080); | |
43+| clGreen | Green | TColor(\$008000); | |
44+| clOlive | Olive Green | TColor(\$008080); | |
45+| clNavy | Navy Blue | TColor(\$800000); | |
46+| clPurple | Purple | TColor(\$800080); | |
47+| clTeal | Teal | TColor(\$808000); | |
48+| clGray | Grey | TColor(\$808080); | |
49+| clSilver | Silver | TColor(\$C0C0C0); | |
50+| clRed | Red | TColor(\$0000FF); | |
51+| clLime | Lime Green | TColor(\$00FF00); | |
52+| clYellow | Yellow | TColor(\$00FFFF); | |
53+| clBlue | Blue | TColor(\$FF0000); | |
54+| clFuchsia | Fuchsia | TColor(\$FF00FF); | |
55+| clAqua | Aqua | TColor(\$FFFF00); | |
56+| clLtGray | Light Grey | TColor(\$C0C0C0); | clSilver alias |
57+| clDkGray | Dark Grey | TColor(\$808080); | clGray alias |
58+| clWhite | White | TColor(\$FFFFFF); | |
59+| clCream | Cream | TColor(\$F0FBFF); | Lazarus 1.2 ja uudemmat |
60+| clMedGray | Medium Grey | TColor(\$A4A0A0); | Lazarus 1.2 ja uudemmat |
61+| clMoneyGreen | Mint Green | TColor(\$C0DCC0); | Lazarus 1.2 ja uudemmat |
62+| clSkyBlue | Sky Blue | TColor(\$F0CAA6); | Lazarus 1.2 ja uudemmat |
63+
64+### Järjestelmän värit
65+
66+#### Esimerkki: clInfoBk, clInfoText
67+
68+Järjestelmävärit ovat värivakioita, joilla on erityinen merkitys. Niiden todellinen arvo riippuu kontekstista ja teemasta. Ne eivät ole yksinkertaisia ​​värejä. Esimerkiksi **clInfoBk**:
69+
70+``` pascal
71+Form1.Canvas.Brush.Color:=clInfoBk; // // käytä vihje-ikkunan oletustaustaväriä
72+Form1.Canvas.FillRect(10,10,50,50);
73+```
74+
75+Vihje-ikkunassa MS Windowsissa voi olla valkoinen tausta, joten yllä oleva piirtää valkoisella. Linuxissa / gtk2: ssa se voi olla metallinen tekstuuri, joten yllä oleva kuvioi kyseisellä tekstuurilla. Jos haluat laittaa tekstiä tähän, tarvitset vastaavan värin kuin **clInfoText**, muuten teksti voi olla käyttäjän kannalta lukukelvoton. Esimerkiksi:
76+
77+``` pascal
78+Form1.Canvas.Brush.Color:=clInfoBk; // käytä vihje-ikkunan oletustaustaväriä
79+Form1.Canvas.FillRect(10,10,50,50);
80+Form1.Canvas.Font.Color:=clInfoText; // käytä vihjeikkunan oletustekstiväriä
81+Form1.Canvas.TextOut(10,10,'Hint');
82+```
83+
84+Järjestelmän väriä **clInfoBk** ei voi käyttää Pen.Color:lla eikä Font.Color:lla. Jos näin tehdään, tulos on määrittelemätön ja riippuu widgetet- ja käyttäjäteemasta. Sama koskee myös väriä **clInfoText**: Sitä voidaan käyttää vain Font.Color:na. Sen käyttö Brush.Color:na ei ehkä toimi. Tällä hetkellä kaikki widgetit sallivat sen käytön myös Pen.Color:na.
85+
86+#### Teeman muutokset
87+
88+Kun käyttäjä vaihtaa teeman, järjestelmän värit muuttuvat. Väri **clInfoBk** saattaa muuttua valkoisesta siniseksi tai yhtenäisestä väristä tekstuuriksi. Tämä muutos tapahtuu, kun jaat uuden Brush Handle. Muista, että yksinkertainen tehtävä Brush.Color:=clInfoBk ei jaa Brush Handle. Brush Handle on jaettu käyttöön. Esimerkiksi:
89+
90+``` pascal
91+Form1.Canvas.Brush.Color:=clInfoBk; // tämä ei luo uutta brush handle:a
92+Form1.Canvas.FillRect(10,10,50,50); // tämä luo brush handletällä hetkellä aktiivisen teeman brush vihjeikkunoita varten
93+...
94+...
95+// jos teema muuttuu niin tällä hetkellä Brush.Handle on edelleen varattu vanhojen arvojen kanssa
96+...
97+Form1.Canvas.FillRect(10,10,50,50); // tämä maalaa vanhan teeman brush:lla
98+Form1.Canvas.Brush.Color:=clInfoBk; // vanhan arvon liittäminen ei luo uutta brush handle:a
99+Form1.Canvas.FillRect(10,10,50,50); // tämä maalaa vanhan teeman brush:lla
100+Form1.Canvas.Brush.Color:=clRed; // uuden värin määrittäminen, vanha Handle ei kelpaa
101+Form1.Canvas.Brush.Color:=clInfoBk; // uuden värin määrittäminen, vanha Handle ei kelpaa
102+Form1.Canvas.FillRect(10,10,50,50); // tämä luo uuden handlen ja maalaa uuden teeman avulla
103+```
104+
105+### Taulukko järjestelmän väreistä
106+
107+Seuraavassa taulukossa luetellaan järjestelmän värit ja niiden merkitys. Niiden käyttäminen määritelmän soveltamisalan ulkopuolella on määrittelemätön ja tulos riippuu widgetetistä ja teemasta. Esimerkiksi **clDefault** on normaali taustaväri on käytetyn laitteen taustakuvio. Jos halutaan maalata painikkeita omilla mukautetuilla ohjaimilla, käytä yksikön **Themes** piirustusfunktioita.
108+
109+<table>
110+<thead>
111+<tr>
112+<th><p>Vakio</p></th>
113+<th><p>LCL määrittely</p></th>
114+<th><p>Delphi huomiot</p></th>
115+<th><p>Tuetut Widgetsets</p></th>
116+</tr>
117+</thead>
118+<tbody>
119+<tr>
120+<td><p>clNone</p></td>
121+<td><p>Ilmaisee "ei piirretä". Sen käyttäminen kontrollin värinä on määrittelemätön. kontrolli ei tule läpinäkyväksi.</p></td>
122+<td><p>-</p></td>
123+<td><p>kaikki</p></td>
124+</tr>
125+<tr>
126+<td><p>clDefault</p></td>
127+<td><p>Käyttämällä sitä Brush-värinä niin käytetään tavallisen device context (DC, laitteen konteksti) normaalia taustaväriä</p>
128+<ul>
129+<li>Lomakkeen canvas:ssa <em>FillRect</em> maalaa suorakulmaisen alueen, joka on täynnä normaalin ikkunan normaalia taustaa. Tämä on mitä widgetset ja teema määrittelevät. Tämä voi olla harmaa, liukuväri tai kuva.</li>
130+<li>Käyttämällä clDefault TListBoxin canvasiin niin maalataan se normaalilla taustalla, joka on yleensä valkoinen Windowsissa. Joten TListBox clDefault on sama kuin clWindow.</li>
131+<li>Käyttämällä sitä Pen color:na niin se on laitteeen oletusarvoinen viivan väri.</li>
132+<li>Käyttämällä sitä Font color:na niin se on laitteeen oletusarvoinen tekstin väri.</li>
133+</ul></td>
134+<td><p>| -</p></td>
135+<td><p>kaikki</p></td>
136+</tr>
137+<tr>
138+<td><p>clScrollBar</p></td>
139+<td><p>Vierityspalkin (Scrollbar) runko</p></td>
140+<td><p>-</p></td>
141+<td><p>kaikki</p></td>
142+</tr>
143+<tr>
144+<td><p>clBackground</p></td>
145+<td><p>Työpöydän taustaväri</p></td>
146+<td><p>-</p></td>
147+<td><p>kaikki</p></td>
148+</tr>
149+<tr>
150+<td><p>clActiveCaption</p></td>
151+<td><p>Aktiivinen ikkunan otsikkorivi</p></td>
152+<td><p>-</p></td>
153+<td><p>ei mikään</p></td>
154+</tr>
155+<tr>
156+<td><p>clInactiveCaption</p></td>
157+<td><p>Ei-aktiivinen ikkunan otsikkorivi</p></td>
158+<td><p>-</p></td>
159+<td><p>ei mikään</p></td>
160+</tr>
161+<tr>
162+<td><p>clMenu</p></td>
163+<td><p>vakio valikkokohdan taustaväri</p></td>
164+<td><p>-</p></td>
165+<td><p>ei mikään</p></td>
166+</tr>
167+<tr>
168+<td><p>clWindow</p></td>
169+<td><p>Valitsemattoman tekstin normaali taustaväri. Määritetty kontrolleille, kuten TEdit, TComboBox, TMemo, TListBox, TTreeView.</p></td>
170+<td><p>-</p></td>
171+<td><p>ei mikään</p></td>
172+</tr>
173+<tr>
174+<td><p>clWindowFrame</p></td>
175+<td><p>Kehyksen väri ikkunan ympärillä</p></td>
176+<td><p>-</p></td>
177+<td><p>ei mikään</p></td>
178+</tr>
179+<tr>
180+<td><p>clMenuText</p></td>
181+<td><p>Fontin väri, jota käytetään yhdessä clMenu:n kanssa</p></td>
182+<td><p>-</p></td>
183+<td><p>ei mikään</p></td>
184+</tr>
185+<tr>
186+<td><p>clWindowText</p></td>
187+<td><p>Fontin väri, jota käytetään yhdessä clWindow:n kanssa</p></td>
188+<td><p>-</p></td>
189+<td><p>ei mikään</p></td>
190+</tr>
191+<tr>
192+<td><p>clCaptionText</p></td>
193+<td><p>Aktiivisen ikkunan otsikkorivin tekstin väri</p></td>
194+<td><p>-</p></td>
195+<td><p>ei mikään</p></td>
196+</tr>
197+<tr>
198+<td><p>clActiveBorder</p></td>
199+<td><p>?</p></td>
200+<td><p>-</p></td>
201+<td><p>ei mikään</p></td>
202+</tr>
203+<tr>
204+<td><p>clInactiveBorder</p></td>
205+<td><p>?</p></td>
206+<td><p>-</p></td>
207+<td><p>ei mikään</p></td>
208+</tr>
209+<tr>
210+<td><p>clAppWorkspace</p></td>
211+<td><p>MDIMain lomakkeen taustaväri</p></td>
212+<td><p>-</p></td>
213+<td><p>ei mikään</p></td>
214+</tr>
215+<tr>
216+<td><p>clHighlight</p></td>
217+<td><p>brush color kun elementti on valittu</p></td>
218+<td><p>-</p></td>
219+<td><p>ei mikään</p></td>
220+</tr>
221+<tr>
222+<td><p>clHighlightText</p></td>
223+<td><p>Font color kun teksti on valittu (käytetään clHighligh kanssa).</p></td>
224+<td><p>-</p></td>
225+<td><p>ei mikään</p></td>
226+</tr>
227+<tr>
228+<td><p>clBtnFace</p></td>
229+<td><p>Painikkeen taustaväri</p></td>
230+<td><p>-</p></td>
231+<td><p>ei mikään</p></td>
232+</tr>
233+<tr>
234+<td><p>clBtnShadow</p></td>
235+<td><p>Painikkeen varjostusväri (Bottom Right) käytetään 3D-efektin saavuttamiseen</p></td>
236+<td><p>-</p></td>
237+<td><p>ei mikään</p></td>
238+</tr>
239+<tr>
240+<td><p>clGrayText</p></td>
241+<td><p>font color kielletyillä elementeillä</p></td>
242+<td><p>-</p></td>
243+<td><p>ei mikään</p></td>
244+</tr>
245+<tr>
246+<td><p>clBtnText</p></td>
247+<td><p>Painikkeen font color käytetään clBtnFace:n kanssa</p></td>
248+<td><p>-</p></td>
249+<td><p>ei mikään</p></td>
250+</tr>
251+<tr>
252+<td><p>clInactiveCaptionText</p></td>
253+<td><p>Ei-aktiivinen ikkunan otsikkorivin tekstin väri</p></td>
254+<td><p>-</p></td>
255+<td><p>ei mikään</p></td>
256+</tr>
257+<tr>
258+<td><p>clBtnHighlight</p></td>
259+<td><p>BPainikkeen korostusväri (Top Left) käytetään 3D-efektin saavuttamiseen</p></td>
260+<td><p>-</p></td>
261+<td><p>ei mikään</p></td>
262+</tr>
263+<tr>
264+<td><p>cl3DDkShadow</p></td>
265+<td><p>?</p></td>
266+<td><p>-</p></td>
267+<td><p>ei mikään</p></td>
268+</tr>
269+<tr>
270+<td><p>cl3DLight</p></td>
271+<td><p>?</p></td>
272+<td><p>-</p></td>
273+<td><p>ei mikään</p></td>
274+</tr>
275+<tr>
276+<td><p>clInfoText</p></td>
277+<td><p>Vihjeiden fontin väri. Käytä yhdessä clInfoBk:n kanssa</p></td>
278+<td><p>-</p></td>
279+<td><p>kaikki</p></td>
280+</tr>
281+<tr>
282+<td><p>clInfoBk</p></td>
283+<td><p>Brush väri vihjeitä varten. Käytä yhdessä clInfoText:n kanssa</p></td>
284+<td><p>-</p></td>
285+<td><p>kaikki</p></td>
286+</tr>
287+<tr>
288+<td><p>clHotLight</p></td>
289+<td><p>?</p></td>
290+<td><p>-</p></td>
291+<td><p>ei mikään</p></td>
292+</tr>
293+<tr>
294+<td><p>clGradientActiveCaption</p></td>
295+<td><p>Toinen väri, jota käytetään aktiivisen ikkunan otsikkorivin gradientin tekemiseen</p></td>
296+<td><p>-</p></td>
297+<td><p>ei mikään</p></td>
298+</tr>
299+<tr>
300+<td><p>clGradientInactiveCaption</p></td>
301+<td><p>Toinen väri, jota käytetään ei-aktiivisen ikkunan otsikkorivin gradientin tekemiseen</p></td>
302+<td><p>-</p></td>
303+<td><p>ei mikään</p></td>
304+</tr>
305+<tr>
306+<td><p>clMenuHighlight</p></td>
307+<td><p>Valitun valikkokohdan taustaväri</p></td>
308+<td><p>-</p></td>
309+<td><p>ei mikään</p></td>
310+</tr>
311+<tr>
312+<td><p>clMenuBar</p></td>
313+<td><p>Valikkokohdan taustaväri</p></td>
314+<td><p>-</p></td>
315+<td><p>ei mikään</p></td>
316+</tr>
317+<tr>
318+<td><p>clForm</p></td>
319+<td><p>?</p></td>
320+<td><p>-</p></td>
321+<td><p>ei mikään</p></td>
322+</tr>
323+<tr>
324+<td><p>clColorDesktop</p></td>
325+<td><p>?</p></td>
326+<td><p>-</p></td>
327+<td><p>ei mikään</p></td>
328+</tr>
329+<tr>
330+<td><p>cl3DFace</p></td>
331+<td><p>?</p></td>
332+<td><p>-</p></td>
333+<td><p>ei mikään</p></td>
334+</tr>
335+<tr>
336+<td><p>cl3DShadow</p></td>
337+<td><p>?</p></td>
338+<td><p>-</p></td>
339+<td><p>ei mikään</p></td>
340+</tr>
341+<tr>
342+<td><p>cl3DHiLight</p></td>
343+<td><p>?</p></td>
344+<td><p>-</p></td>
345+<td><p>ei mikään</p></td>
346+</tr>
347+<tr>
348+<td><p>clBtnHiLight</p></td>
349+<td><p>Sama kuin clBtnHighlight</p></td>
350+<td><p>-</p></td>
351+<td><p>ei mikään</p></td>
352+</tr>
353+</tbody>
354+</table>
355+
356+### Järjestelmävärin rgb-arvojen löytäminen
357+
358+Käytä funktiota `ColorToRGB` (in unit `Graphics` ) järjestelmän värin rgb-komponenttien määrittämiseksi. Tämä funktio havaitsee, onko väri värijärjestelmä, ja jos tämän arvo on true, näyttää palauttaa järjestelmän värin teeman värissä. Palautettu [[Longint]] voidaan ymmärtää tavalliseksi väriksi:
359+
360+``` pascal
361+// Tässä esimerkissä on TColorBox lomakkeellaa ja käyttää tämän OnChange-käsittelijää
362+procedure TForm1.ColorBox1Change(Sender: TObject);
363+var
364+ c: TColor;
365+begin
366+ c := ColorToRGB(ColorBox1.Selected);
367+ Caption := Format('R%d G%d B%d', [Red(c), Green(c), Blue(c)]);
368+end;
369+```
370+
371+### Piirrä teeman elementtejä mukautetuissa ohjauksissa (custom controls)
372+
373+Käännösyksikkö (unit) **Themes** tarjoaa funktioita, joilla piirretään standardinhallinnan yksittäisiä elementtejä. Esimerkiksi piirtomerkin piirtäminen kuten [[TTreeView]] käyttää seuraavaa koodia:
374+
375+``` pascal
376+uses Themes;
377+
378+...
379+
380+procedure TYourCustomControl.Paint;
381+const
382+ PlusMinusDetail: array[Boolean {Hot}, Boolean {Expanded}] of TThemedTreeview =
383+ (
384+ (ttGlyphClosed, ttGlyphOpened),
385+ (ttHotGlyphClosed, ttHotGlyphOpened)
386+ );
387+var
388+ Details: TThemedElementDetails;
389+ R: TRect;
390+ Collapse: boolean;
391+begin
392+ ...
393+ //draw a themed expand sign.
394+ Details := ThemeServices.GetElementDetails(PlusMinusDetail[False, Collapse]);
395+ R := Rect(ALeft, ATop, ARight + 1, ABottom + 1);
396+ ThemeServices.DrawElement(Canvas.Handle, Details, R, nil);
397+ ...
398+end;
399+```
400+
401+---
402+*From the Free Pascal wiki, page "Colors/fi", as it stood on 2020-07-24 after a change by Kai Burghardt, 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