Metoda ResolveIndexedColor
Clasifică un token de culoare indexată și rezolvă o valoare ARGB concretă atunci când paleta registrului de lucru sau un resolver de culori de sistem furnizat de apelant oferă una
Metoda este disponibilă atât pe IXLSWorkbook, cât și pe TXLSXWorkbook și nu modifică starea registrului de lucru
Sintaxă
function ResolveIndexedColor( AIndex: Int64; ASpace: TXLSIndexedColorSpace; out AResolution: TXLSIndexedColorResolution): Boolean; overload; function ResolveIndexedColor( AIndex: Int64; ASpace: TXLSIndexedColorSpace; ARole: TXLSIndexedColorRole; ASystemResolver: TXLSTryResolveSystemColor; out AResolution: TXLSIndexedColorResolution): Boolean; overload;
Spații de indecși
| Spațiu | Interpretare |
|---|---|
xicsPublicColorIndex | Indecșii publici ai paletei 1..56 se mapează pe sloturile paletei BIFF 8..63; xlColorIndexAutomatic, cu semn sau fără semn, este clasificat ca automat |
xicsBiffIcv | Indecșii BIFF sunt validați față de rolul selectat: culorile de font și comentariu folosesc submulțimea IcvFont, culorile de bordură și umplere submulțimea IcvXF, culorile graficelor submulțimea IcvChart, iar căutarea generală folosește tabla completă Icv |
xicsOoxmlIndexed | Indecșii OOXML 0..63 adresează paleta indexată, 64 și 65 identifică prim-planul și fundalul sistemului, iar valorile mai mari sunt invalide |
Rezultat
| Câmp | Semnificație |
|---|---|
Kind | xickPalette, xickAutomatic, xickSystem sau xickInvalid |
RawIndex | Valoarea de intrare neschimbată |
PaletteSlot | Slotul fizic al paletei cu bază zero, sau -1 când token-ul nu se bazează pe paletă |
SystemColorRole | Rolul semantic de sistem, inclusiv textul ferestrei, fundalul ferestrei, textul graficului, fundalul graficului, neutralul graficului sau textul tooltip |
ARGB | Culoarea concretă normalizată când HasResolvedColor este true |
HasResolvedColor | True doar când căutarea în paletă, o culoare cu format fix sau callback-ul explicit a produs o valoare RGB |
Valoarea returnată de funcție coincide cu HasResolvedColor; clasificarea rămâne disponibilă în AResolution când funcția returnează false
Contractul culorilor de sistem
Supraîncărcarea scurtă nu citește niciodată desktopul curent Windows și, prin urmare, lasă culorile de sistem automate și dependente de mediu nerezolvate
Supraîncărcarea lungă transmite atât TXLSSystemColorRole, cât și TXLSIndexedColorRole către ASystemResolver, permițând apelantului să aplice o politică explicită de UI, de export sau de randare headless
Ieșirea callback-ului trebuie să folosească ordinea canalelor $AARRGGBB; un octet alfa zero este normalizat la $FF, în timp ce un rezultat false al callback-ului lasă token-ul semantic clasificat, dar nerezolvat
Un COLORREF Windows folosește ordinea canalelor $00BBGGRR și trebuie convertit la $AARRGGBB înainte ca callback-ul să îl returneze
Token-urile invalide nu invoacă niciodată callback-ul, iar token-ul fix de culoare neutră a graficului BIFF se rezolvă în negru opac fără callback
Exemplu
if Workbook.ResolveIndexedColor(12, xicsPublicColorIndex, Resolution) then UseArgb(Resolution.ARGB); if not Workbook.ResolveIndexedColor($40, xicsBiffIcv, Resolution) then Assert(Resolution.Kind = xickSystem);