Méthode ResolveIndexedColor
Classe un jeton de couleur indexée et résout une valeur ARGB concrète lorsque la palette du classeur ou un résolveur de couleurs système fourni par l'appelant en fournit une
La méthode est disponible sur IXLSWorkbook et TXLSXWorkbook et ne modifie pas l'état du classeur
Syntaxe
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;
Espaces d'index
| Espace | Interprétation |
|---|---|
xicsPublicColorIndex | Les index publics de palette 1..56 correspondent aux emplacements de palette BIFF 8..63 ; xlColorIndexAutomatic signé ou non signé est classé comme automatique |
xicsBiffIcv | Les index BIFF sont validés par rapport au rôle sélectionné : les couleurs de polices et de commentaires utilisent le sous-ensemble IcvFont, les couleurs de bordures et de remplissages le sous-ensemble IcvXF, les couleurs de graphiques le sous-ensemble IcvChart, et la recherche générale utilise la table Icv complète |
xicsOoxmlIndexed | Les index OOXML 0..63 adressent la palette indexée, 64 et 65 identifient le premier plan et l'arrière-plan système, et les valeurs supérieures sont invalides |
Résultat
| Champ | Signification |
|---|---|
Kind | xickPalette, xickAutomatic, xickSystem ou xickInvalid |
RawIndex | La valeur d'entrée inchangée |
PaletteSlot | L'emplacement physique de palette en base zéro, ou -1 lorsque le jeton n'est pas basé sur la palette |
SystemColorRole | Le rôle système sémantique, notamment texte de fenêtre, arrière-plan de fenêtre, texte de graphique, arrière-plan de graphique, neutre de graphique ou texte d'info-bulle |
ARGB | La couleur concrète normalisée lorsque HasResolvedColor est true |
HasResolvedColor | True uniquement lorsque la recherche dans la palette, une couleur à format fixe ou le callback explicite a produit une valeur RGB |
La valeur de retour de la fonction correspond à HasResolvedColor ; la classification reste disponible dans AResolution lorsque la fonction renvoie false
Contrat des couleurs système
La surcharge courte ne lit jamais le bureau Windows courant et laisse donc les couleurs système automatiques et dépendantes de l'environnement non résolues
La surcharge longue transmet à la fois TXLSSystemColorRole et TXLSIndexedColorRole à ASystemResolver, permettant à l'appelant d'appliquer une stratégie explicite d'interface utilisateur, d'exportation ou de rendu headless
La sortie du callback doit utiliser l'ordre des canaux $AARRGGBB ; un octet alpha nul est normalisé à $FF, tandis qu'un résultat de callback false laisse le jeton sémantique classé mais non résolu
Un COLORREF Windows utilise l'ordre des canaux $00BBGGRR et doit être converti en $AARRGGBB avant que le callback ne le renvoie
Les jetons invalides n'invoquent jamais le callback, et le jeton fixe neutre de graphique BIFF se résout en noir opaque sans callback
Exemple
if Workbook.ResolveIndexedColor(12, xicsPublicColorIndex, Resolution) then UseArgb(Resolution.ARGB); if not Workbook.ResolveIndexedColor($40, xicsBiffIcv, Resolution) then Assert(Resolution.Kind = xickSystem);