Difference between revisions of "Colors/fi"
(Created page with "{{Colors}} <br> = Värit = <br> LCL:ssä TColor on vakiovärityyppi. Se on yhteensopiva Delphin TColorin kanssa. TColor voi edustaa joko RGB (3x8bit) arvoa tai järjeste...") |
m (syntaxfix) |
||
(2 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
{{Colors}} | {{Colors}} | ||
− | |||
− | |||
− | |||
+ | == Värit == | ||
− | |||
− | |||
− | + | [[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). | |
− | <syntaxhighlight>function Blue(rgb: TColor): BYTE; // does not work on system color | + | === Muunnokset TColor- ja RGB-arvojen välillä === |
+ | |||
+ | [[Unit/fi|käännösyksikkö (eli unit)]]'''Graphics''' tarjoaa seuraavat toiminnot: | ||
+ | |||
+ | <syntaxhighlight lang="pascal">function Blue(rgb: TColor): BYTE; // does not work on system color | ||
function Green(rgb: TColor): BYTE; // does not work on system color | function Green(rgb: TColor): BYTE; // does not work on system color | ||
function Red(rgb: TColor): BYTE; // does not work on system color | function Red(rgb: TColor): BYTE; // does not work on system color | ||
Line 21: | Line 21: | ||
− | == TColor:n muunto merkkijonoksi ja päinvastoin == | + | === TColor:n muunto merkkijonoksi ja päinvastoin === |
− | Seuraavat funktiot muuntaa merkkijonot kuten "25500", "$AA0088" tai "clNavy" TColoriksi: | + | Seuraavat [[Function/fi|funktiot]] muuntaa merkkijonot kuten "25500", "[[Dollar_sign/fi|$]]AA0088" tai "clNavy" TColoriksi: |
* StringToColor | * StringToColor | ||
Line 32: | Line 32: | ||
* ColorToString | * ColorToString | ||
− | == Muunna TColor HTML-merkkijonoksi #rrggbb == | + | === Muunna TColor HTML-merkkijonoksi #rrggbb === |
Katso koodi kohdasta [[Convert color to/from HTML]]. | Katso koodi kohdasta [[Convert color to/from HTML]]. | ||
− | == Taulukko vakioväreistä == | + | === Taulukko vakioväreistä === |
Tarjotaan noin 20 ennalta määritettyä värivakiota, jotka ovat [[Delphi]]-yhteensopivia: | Tarjotaan noin 20 ennalta määritettyä värivakiota, jotka ovat [[Delphi]]-yhteensopivia: | ||
Line 158: | Line 158: | ||
|} | |} | ||
− | == Järjestelmän värit == | + | === Järjestelmän värit === |
− | === Esimerkki: clInfoBk, clInfoText === | + | ==== Esimerkki: clInfoBk, clInfoText ==== |
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''': | 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''': | ||
− | <syntaxhighlight>Form1.Canvas.Brush.Color:=clInfoBk; // // käytä vihje-ikkunan oletustaustaväriä | + | <syntaxhighlight lang="pascal">Form1.Canvas.Brush.Color:=clInfoBk; // // käytä vihje-ikkunan oletustaustaväriä |
Form1.Canvas.FillRect(10,10,50,50);</syntaxhighlight> | Form1.Canvas.FillRect(10,10,50,50);</syntaxhighlight> | ||
Line 169: | Line 169: | ||
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: | 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: | ||
− | <syntaxhighlight>Form1.Canvas.Brush.Color:=clInfoBk; // käytä vihje-ikkunan oletustaustaväriä | + | <syntaxhighlight lang="pascal">Form1.Canvas.Brush.Color:=clInfoBk; // käytä vihje-ikkunan oletustaustaväriä |
Form1.Canvas.FillRect(10,10,50,50); | Form1.Canvas.FillRect(10,10,50,50); | ||
Form1.Canvas.Font.Color:=clInfoText; // käytä vihjeikkunan oletustekstiväriä | Form1.Canvas.Font.Color:=clInfoText; // käytä vihjeikkunan oletustekstiväriä | ||
Line 178: | Line 178: | ||
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. | 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. | ||
− | === Teeman muutokset === | + | ==== Teeman muutokset ==== |
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: | 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: | ||
− | <syntaxhighlight>Form1.Canvas.Brush.Color:=clInfoBk; // tämä ei luo uutta brush handle:a | + | <syntaxhighlight lang="pascal">Form1.Canvas.Brush.Color:=clInfoBk; // tämä ei luo uutta brush handle:a |
Form1.Canvas.FillRect(10,10,50,50); // tämä luo brush handletällä hetkellä aktiivisen teeman brush vihjeikkunoita varten | Form1.Canvas.FillRect(10,10,50,50); // tämä luo brush handletällä hetkellä aktiivisen teeman brush vihjeikkunoita varten | ||
... | ... | ||
Line 197: | Line 197: | ||
− | == Taulukko järjestelmän väreistä == | + | === Taulukko järjestelmän väreistä === |
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. | 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. | ||
Line 287: | Line 287: | ||
|} | |} | ||
− | == Järjestelmävärin rgb-arvojen löytäminen == | + | === Järjestelmävärin rgb-arvojen löytäminen === |
Käytä funktiota <tt>ColorToRGB</tt> (in unit <tt>Graphics</tt> ) järjestelmän värin rgb-komponenttien määrittämiseksi. | Käytä funktiota <tt>ColorToRGB</tt> (in unit <tt>Graphics</tt> ) 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ä. | 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: | Palautettu [[Longint]] voidaan ymmärtää tavalliseksi väriksi: | ||
− | <syntaxhighlight>// Tässä esimerkissä on TColorBox lomakkeellaa ja käyttää tämän OnChange-käsittelijää | + | <syntaxhighlight lang="pascal">// Tässä esimerkissä on TColorBox lomakkeellaa ja käyttää tämän OnChange-käsittelijää |
procedure TForm1.ColorBox1Change(Sender: TObject); | procedure TForm1.ColorBox1Change(Sender: TObject); | ||
var | var | ||
Line 300: | Line 300: | ||
end; </syntaxhighlight> | end; </syntaxhighlight> | ||
− | ==Piirrä teeman elementtejä mukautetuissa ohjauksissa (custom controls)== | + | ===Piirrä teeman elementtejä mukautetuissa ohjauksissa (custom controls)=== |
Käännösyksikkö (unit) '''Themes''' tarjoaa funktioita, joilla piirretään standardinhallinnan yksittäisiä elementtejä. Esimerkiksi piirtomerkin piirtäminen kuten [[TTreeView]] käyttää seuraavaa koodia: | Käännösyksikkö (unit) '''Themes''' tarjoaa funktioita, joilla piirretään standardinhallinnan yksittäisiä elementtejä. Esimerkiksi piirtomerkin piirtäminen kuten [[TTreeView]] käyttää seuraavaa koodia: | ||
− | <syntaxhighlight>uses Themes; | + | <syntaxhighlight lang="pascal">uses Themes; |
... | ... |
Latest revision as of 21:16, 24 July 2020
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
日本語 (ja) │
русский (ru) │
中文(中国大陆) (zh_CN) │
Värit
LCL:ssä TColor on vakiovärityyppi. Se on yhteensopiva 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).
Muunnokset TColor- ja RGB-arvojen välillä
käännösyksikkö (eli unit)Graphics tarjoaa seuraavat toiminnot:
function Blue(rgb: TColor): BYTE; // does not work on system color
function Green(rgb: TColor): BYTE; // does not work on system color
function Red(rgb: TColor): BYTE; // does not work on system color
function RGBToColor(R, G, B: Byte): TColor;
procedure RedGreenBlue(rgb: TColor; out Red, Green, Blue: Byte); // does not work on system color
function FPColorToTColor(const FPColor: TFPColor): TColor;
function TColorToFPColor(const c: TColor): TFPColor; // does not work on system color
function IsSysColor(AColor: TColorRef): Boolean;
TColor:n muunto merkkijonoksi ja päinvastoin
Seuraavat funktiot muuntaa merkkijonot kuten "25500", "$AA0088" tai "clNavy" TColoriksi:
- StringToColor
- StringToColorDef
Voit muuntaa TColorin arvon merkkijonoksi kuten "clNavy" tai "$AA0002":
- ColorToString
Muunna TColor HTML-merkkijonoksi #rrggbb
Katso koodi kohdasta Convert color to/from HTML.
Taulukko vakioväreistä
Tarjotaan noin 20 ennalta määritettyä värivakiota, jotka ovat Delphi-yhteensopivia:
Värivakio | Merkitys | Heksadesimaalinen arvo käytettäväksi TColor:n kanssa | Esimerkki |
---|---|---|---|
clBlack | Black | TColor($000000); | |
clMaroon | Maroon | TColor($000080); | |
clGreen | Green | TColor($008000); | |
clOlive | Olive Green | TColor($008080); | |
clNavy | Navy Blue | TColor($800000); | |
clPurple | Purple | TColor($800080); | |
clTeal | Teal | TColor($808000); | |
clGray | Grey | TColor($808080); | |
clSilver | Silver | TColor($C0C0C0); | |
clRed | Red | TColor($0000FF); | |
clLime | Lime Green | TColor($00FF00); | |
clYellow | Yellow | TColor($00FFFF); | |
clBlue | Blue | TColor($FF0000); | |
clFuchsia | Fuchsia | TColor($FF00FF); | |
clAqua | Aqua | TColor($FFFF00); | |
clLtGray | Light Grey | TColor($C0C0C0); | clSilver alias |
clDkGray | Dark Grey | TColor($808080); | clGray alias |
clWhite | White | TColor($FFFFFF); | |
clCream | Cream | TColor($F0FBFF); | Lazarus 1.2 ja uudemmat |
clMedGray | Medium Grey | TColor($A4A0A0); | Lazarus 1.2 ja uudemmat |
clMoneyGreen | Mint Green | TColor($C0DCC0); | Lazarus 1.2 ja uudemmat |
clSkyBlue | Sky Blue | TColor($F0CAA6); | Lazarus 1.2 ja uudemmat |
Järjestelmän värit
Esimerkki: clInfoBk, clInfoText
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:
Form1.Canvas.Brush.Color:=clInfoBk; // // käytä vihje-ikkunan oletustaustaväriä
Form1.Canvas.FillRect(10,10,50,50);
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:
Form1.Canvas.Brush.Color:=clInfoBk; // käytä vihje-ikkunan oletustaustaväriä
Form1.Canvas.FillRect(10,10,50,50);
Form1.Canvas.Font.Color:=clInfoText; // käytä vihjeikkunan oletustekstiväriä
Form1.Canvas.TextOut(10,10,'Hint');
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.
Teeman muutokset
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:
Form1.Canvas.Brush.Color:=clInfoBk; // tämä ei luo uutta brush handle:a
Form1.Canvas.FillRect(10,10,50,50); // tämä luo brush handletällä hetkellä aktiivisen teeman brush vihjeikkunoita varten
...
...
// jos teema muuttuu niin tällä hetkellä Brush.Handle on edelleen varattu vanhojen arvojen kanssa
...
Form1.Canvas.FillRect(10,10,50,50); // tämä maalaa vanhan teeman brush:lla
Form1.Canvas.Brush.Color:=clInfoBk; // vanhan arvon liittäminen ei luo uutta brush handle:a
Form1.Canvas.FillRect(10,10,50,50); // tämä maalaa vanhan teeman brush:lla
Form1.Canvas.Brush.Color:=clRed; // uuden värin määrittäminen, vanha Handle ei kelpaa
Form1.Canvas.Brush.Color:=clInfoBk; // uuden värin määrittäminen, vanha Handle ei kelpaa
Form1.Canvas.FillRect(10,10,50,50); // tämä luo uuden handlen ja maalaa uuden teeman avulla
Taulukko järjestelmän väreistä
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.
Vakio | LCL määrittely | Delphi huomiot | Tuetut Widgetsets |
---|---|---|---|
clNone | Ilmaisee "ei piirretä". Sen käyttäminen kontrollin värinä on määrittelemätön. kontrolli ei tule läpinäkyväksi. | - | kaikki |
clDefault | Käyttämällä sitä Brush-värinä niin käytetään tavallisen device context (DC, laitteen konteksti) normaalia taustaväriä
|
- | kaikki |
clScrollBar | Vierityspalkin (Scrollbar) runko | - | kaikki |
clBackground | Työpöydän taustaväri | - | kaikki |
clActiveCaption | Aktiivinen ikkunan otsikkorivi | - | ei mikään |
clInactiveCaption | Ei-aktiivinen ikkunan otsikkorivi | - | ei mikään |
clMenu | vakio valikkokohdan taustaväri | - | ei mikään |
clWindow | Valitsemattoman tekstin normaali taustaväri. Määritetty kontrolleille, kuten TEdit, TComboBox, TMemo, TListBox, TTreeView. | - | ei mikään |
clWindowFrame | Kehyksen väri ikkunan ympärillä | - | ei mikään |
clMenuText | Fontin väri, jota käytetään yhdessä clMenu:n kanssa | - | ei mikään |
clWindowText | Fontin väri, jota käytetään yhdessä clWindow:n kanssa | - | ei mikään |
clCaptionText | Aktiivisen ikkunan otsikkorivin tekstin väri | - | ei mikään |
clActiveBorder | ? | - | ei mikään |
clInactiveBorder | ? | - | ei mikään |
clAppWorkspace | MDIMain lomakkeen taustaväri | - | ei mikään |
clHighlight | brush color kun elementti on valittu | - | ei mikään |
clHighlightText | Font color kun teksti on valittu (käytetään clHighligh kanssa). | - | ei mikään |
clBtnFace | Painikkeen taustaväri | - | ei mikään |
clBtnShadow | Painikkeen varjostusväri (Bottom Right) käytetään 3D-efektin saavuttamiseen | - | ei mikään |
clGrayText | font color kielletyillä elementeillä | - | ei mikään |
clBtnText | Painikkeen font color käytetään clBtnFace:n kanssa | - | ei mikään |
clInactiveCaptionText | Ei-aktiivinen ikkunan otsikkorivin tekstin väri | - | ei mikään |
clBtnHighlight | BPainikkeen korostusväri (Top Left) käytetään 3D-efektin saavuttamiseen | - | ei mikään |
cl3DDkShadow | ? | - | ei mikään |
cl3DLight | ? | - | ei mikään |
clInfoText | Vihjeiden fontin väri. Käytä yhdessä clInfoBk:n kanssa | - | kaikki |
clInfoBk | Brush väri vihjeitä varten. Käytä yhdessä clInfoText:n kanssa | - | kaikki |
clHotLight | ? | - | ei mikään |
clGradientActiveCaption | Toinen väri, jota käytetään aktiivisen ikkunan otsikkorivin gradientin tekemiseen | - | ei mikään |
clGradientInactiveCaption | Toinen väri, jota käytetään ei-aktiivisen ikkunan otsikkorivin gradientin tekemiseen | - | ei mikään |
clMenuHighlight | Valitun valikkokohdan taustaväri | - | ei mikään |
clMenuBar | Valikkokohdan taustaväri | - | ei mikään |
clForm | ? | - | ei mikään |
clColorDesktop | ? | - | ei mikään |
cl3DFace | ? | - | ei mikään |
cl3DShadow | ? | - | ei mikään |
cl3DHiLight | ? | - | ei mikään |
clBtnHiLight | Sama kuin clBtnHighlight | - | ei mikään |
Järjestelmävärin rgb-arvojen löytäminen
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:
// Tässä esimerkissä on TColorBox lomakkeellaa ja käyttää tämän OnChange-käsittelijää
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;
Piirrä teeman elementtejä mukautetuissa ohjauksissa (custom controls)
Käännösyksikkö (unit) Themes tarjoaa funktioita, joilla piirretään standardinhallinnan yksittäisiä elementtejä. Esimerkiksi piirtomerkin piirtäminen kuten TTreeView käyttää seuraavaa koodia:
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
...
//draw a themed expand sign.
Details := ThemeServices.GetElementDetails(PlusMinusDetail[False, Collapse]);
R := Rect(ALeft, ATop, ARight + 1, ABottom + 1);
ThemeServices.DrawElement(Canvas.Handle, Details, R, nil);
...
end;