Birim: lxHandle
12 Office tema rengi yuvasından birini (artı isteğe bağlı bir renk tonu) bir çizim tarafı
TXLSColorFormat öğesine uygular —
FillFormat.ForeColor ve
LineFormat.ForeColor 'ın şekiller ve grafik öğeleri üzerinde açığa çıkardığı aynı tanıtıcı. v2.62.0 sürümünden (grafik birikim dalgası D aşama 5) beri kullanılabilir. v2.64.0 (aşama 7), aynı işlem içindeki sonraki bir
XlsGetDrawingThemeColor çağrısının özgün tema idx + renk tonunu kurtarabilmesi için çalışma kitabı düzeyinde bir bellek içi yan tablo ekledi
Uygulama, grafik dolgularının, grafik çizgi renklerinin veya şekil dolgularının, hücrelerin
Interior.SetThemeColorSözdizimi
procedure XlsApplyThemeColorToDrawing(
ColorFormat: TXLSColorFormat;
Workbook : TXLSWorkbook;
ThemeIdx : Word;
Tint : Double);
Parametreler
Workbook — ana TXLSWorkbook. Tema paletini çözmek ve bellek içi yan tabloyu tutmak için gereklidir
ThemeIdx — 0 tabanlı tema yuvası
(0=lt1, 1=dk1, 2=lt2, 3=dk2, 4..9=accent1..6, 10=hlink, 11=foHlink)
Tint — spec stilinde, -1.0 .. +1.0
Açıklamalar
Yardımcı, çağrı başına iki yazma işlemi gerçekleştirir:
- OfficeArt opt blob (diskte). Tema idx + renk tonu, çalışma kitabının BIFF tema paleti aracılığıyla somut bir RGB olarak çözülür ve çizim renk yuvasına yazılır. BIFF8 OfficeArt, yerel tema rengi kodlaması olmayan Office-2007 öncesi bir ikili formattır; bu nedenle Kaydet/Aç işleminden yalnızca bu parça sağ çıkar
- Çalışma kitabı üzerindeki bellek içi yan tablo (v2.64.0+). Ayarlayıcı ayrıca özgün
(ThemeIdx, Tint) değerini TXLSWorkbook.FDrawingThemeColors anahtarıyla (ColorFormat._Container, ColorFormat._Pid)içinde kaydeder. Eşlik eden XlsGetDrawingThemeColor okuyucusu bu değerleri aynı işlem içinde geri alır. Aynı yuvayı yeniden ayarlamak girdinin üzerine yazar; böylece yan tablo geçmişi biriktirmek yerine en son amacı izler
Neden yalnızca tek işlem. BIFF8 OfficeArt 4 baytlık ColorRef'i dizinli / RGB / şema / sysColor varyantlarını kodlar, ancak tema idx + renk tonunun kalıcı olabileceği XFExt $087D'ye benzer bir uzantı kaydı yoktur. Bu nedenle Kaydet/Aç gidiş-dönüşündeki sınır, HotXLS'teki bir eksiklik değil, dosya biçiminin yapısal bir özelliğidir. Yeniden yüklemeden sonra çalışma kitabı, yan tablosu boş olan yeni bir TXLSWorkbook örneğidir ve XlsGetDrawingThemeColor her sorguda ColorFormat.RGB
Örnek
Bir şeklin düz dolgusunu %25 daha koyu bir renk tonuyla accent5'e yeniden renklendirir, ardından çalışma kitabı yan tablosundan tema amacını geri okuyarak bir özellik bölmesinde görüntüler. SaveAs / Open sonrasında yan tablo yeniden boş başlar; bu nedenle kalıcı amaca ihtiyaç duyan çağıranlar kendi durumlarını korumalıdır
var
Shape : TXLSShape;
ThemeIdx : Word;
Tint : Double;
begin
Shape := Workbook.Worksheets[1].Shapes.Items[0];
XlsApplyThemeColorToDrawing(Shape.Fill.ForeColor, Workbook, 8, - 0.25);
// Same process — the side-table still has the entry.
if XlsGetDrawingThemeColor(Shape.Fill.ForeColor, Workbook, ThemeIdx, Tint)
then
ShowMessage(Format('theme=%d tint=%.2f', [ThemeIdx, Tint]));
Workbook.SaveAs('ThemedShape.xls', xlExcel97);
end;
Ayrıca bkz.