HotXLS Belgeleri

XlsApplyThemeColorToDrawing fonksiyonu

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.SetThemeColor

Sözdizimi

procedure XlsApplyThemeColorToDrawing(
  ColorFormat: TXLSColorFormat;
  Workbook   : TXLSWorkbook;
  ThemeIdx   : Word;
  Tint       : Double);

Parametreler

ColorFormat — güncellenecek çizim renk yuvası. Genellikle bir ForeColor of a TXLSFillFormat veya TXLSLineFormat
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:
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
Kaydet/Aç aracılığıyla gidiş-dönüş yapan hücre renkleri için bunun yerine özel IXLSInterior.SetThemeColor / IXLSFont.SetThemeColor / IXLSBorder.SetThemeColor giriş noktalarını kullanın — bunlar, tema idx + renk tonunu Excel 2007+ aracılığıyla olduğu gibi gidiş-dönüş yapmak için XFExt $087D zengin renk yan kaydından yararlanır

Ö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.