2010-12-13 83 views
3

Lorsque Excel dessine des lignes sur un graphique, il attribue des couleurs par défaut aux traces de chaque série de données. Noir pour le premier, cyan pour le second, etc. L'attribution de ces couleurs est-elle documentée? Je veux dessiner des traces sur un graphique en utilisant Delphi mais je veux conserver les mêmes couleurs que celles qu'utiliserait Excel (l'application Delphi remplace les trucs actuellement faits avec les classeurs Excel).Obtention des valeurs de couleur de delphi pour les lignes de graphique Excel

Répondre

3

Les couleurs par défaut du 'Chart fill' et du 'chart line' sont accessibles depuis le menu: Outils -> Options -> Couleurs (au moins quand Excel possédait un menu - je ne connaissais pas les versions plus récentes). Les couleurs par défaut peuvent être modifiées par classeur et sont donc une propriété du classeur. Il y a 56 couleurs au total sur la page d'option 'Couleur', avec 8 d'entre elles appartenant à des remplissages de graphiques et 8 à des lignes de graphique.

Si vous faites l'automatisation, vous pouvez récupérer une couleur par défaut de classeur par:

TColor(XL.Workbooks[1].Colors[Index]) 

où « XL » est l'application Excel, « 1 » est l'indice de classeur et « Index » est un nombre compris entre 1 et 56. Un petit test avec une version antérieure d'Excel montre que les index 17-24 sont des couleurs de remplissage et 25-32 sont des couleurs de ligne. Mais vous faites vos propres tests au cas où il y aurait eu des changements.

BTW, je suis surpris de votre problème que Delphi substituant les couleurs par défaut ..

+0

Malentendu. Quand j'ai dit "l'application Delphi remplace les trucs actuellement faits avec des classeurs Excel", je voulais dire: le client utilise actuellement Excel pour produire ses graphiques. J'écris une application Delphi pour remplacer ce qu'Excel est en train de faire pour lui, et je veux que les couleurs de ma ligne de graphique soient allouées de la même manière qu'Excel, afin que leurs graphiques aient toujours la même affectation de couleurs de ligne. Ce que je dois savoir est Pen.Color: = ExcelChartLineColor (0), mais votre suggestion devrait fonctionner si je jette ensemble une application rapide et sale pour imprimer les couleurs – rossmcm

+0

En effet j'ai mal compris, merci d'expliquer @user. –

+0

Les 56 couleurs sont listées ici: http://www.mvps.org/dmcritchie/excel/colors.htm – rossmcm