Tài liệu HotXLS

Phương thức SetThemeColor

Đặt màu tô bóng (nền trước) của ô vào một trong 12 khe màu chủ đề Office với điều chỉnh tint tùy chọn. Đồng hành của Interior.Color cho người gọi muốn địa chỉ trực tiếp các màu chủ đề Office (để Excel có thể tô lại ô với bảng màu chủ đề sổ làm việc) thay vì gán một RGB cố định. Có sẵn từ v2.61.0 (chart backlog wave D phase 4)

Cú pháp

procedure SetThemeColor(ThemeIdx: Word; Tint: Double);

Tham số

ThemeIdx — khe chủ đề 0-base: 0=lt1, 1=dk1, 2=lt2, 3=dk2, 4..9=accent1..accent6, 10=hlink, 11=foHlink Khớp với thứ tự chủ đề Office tiêu chuẩn được dùng bởi phía XLSX
Tint — điều chỉnh sáng/tối theo kiểu spec trong phạm vi -1.0 .. +1.0 0.0 sử dụng màu cơ sở của khe chủ đề; giá trị âm làm tối (độ sáng HSL về 0), giá trị dương làm sáng (độ sáng HSL về 1). Trình đọc HotXLS mã hóa điều này dưới dạng số nguyên có dấu Q15 trong trường FullColorExt.nTintShade của bản ghi XFExt

Ghi chú

Setter đi hai đường để cùng một ô hiển thị chính xác trong cả Excel 2007+ và Excel 2003:
Các ô được đặt qua SetThemeColor round-trip khi tải: Interior.Color trả về RGB đã giải quyết (chủ đề + tint được áp dụng thông qua bảng màu chủ đề BIFF) để người gọi luôn thấy một giá trị LongWord cụ thể
Bảng màu chủ đề tùy chỉnh được đặt trong Excel qua Bố cục trang → Màu sắc tồn tại qua tải và lưu thông qua bản ghi BIFF8 Theme ($0892), vì vậy bất kỳ tham chiếu SetThemeColor nào từ phía người gọi đều được giải quyết thông qua chủ đề thực tế của sổ làm việc thay vì scheme Office mặc định

Ví dụ

Tô hàng tiêu đề với accent1 và đánh dấu các ô cảnh báo với accent đỏ sáng 50% (accent2 + tint 0.5)

var
  Header   : IXLSRange;
  Warnings : IXLSRange;
begin
  Header := Workbook.Sheets[1].Range['A1', 'G1'];
  Header.Interior.SetThemeColor(4, 0.0);   // accent1, base shade

  Warnings := Workbook.Sheets[1].Range['G2', 'G20'];
  Warnings.Interior.SetThemeColor(5, 0.5);   // accent2, 50% lighter

  Workbook.SaveAs('ThemeFills.xls', xlExcel97);
end;

Xem thêm