เอกสาร HotXLS

เมธอด ResolveIndexedColor

จัดประเภทโทเคนสีที่จัดทำดัชนี และแก้ค่า ARGB ที่เจาะจงเมื่อพาเลตของสมุดงานหรือตัวแก้สีระบบที่ผู้เรียกจัดเตรียมให้สามารถระบุค่านั้นได้

เมธอดนี้ใช้ได้ทั้งกับ IXLSWorkbook และ TXLSXWorkbook และไม่แก้ไขสถานะสมุดงาน

ไวยากรณ์

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;

พื้นที่ดัชนี

พื้นที่การตีความ
xicsPublicColorIndexดัชนีพาเลตสาธารณะ 1 ถึง 56 แมปไปยังช่องพาเลต BIFF 8 ถึง 63 xlColorIndexAutomatic ที่มีหรือไม่มีเครื่องหมายถูกจัดประเภทเป็นสีอัตโนมัติ
xicsBiffIcvดัชนี BIFF จะได้รับการตรวจสอบตามบทบาทที่เลือก: สีฟอนต์และสีคำอธิบายใช้ชุดย่อย IcvFont, สีเส้นขอบและการเติมสีใช้ชุดย่อย IcvXF, สีแผนภูมิใช้ชุดย่อย IcvChart และการค้นหาทั่วไปใช้ตาราง Icv ทั้งหมด
xicsOoxmlIndexedดัชนี OOXML 0 ถึง 63 ชี้ไปยังพาเลตที่จัดทำดัชนี, ค่า 64 และ 65 ระบุสีพื้นหน้าและพื้นหลังของระบบ และค่าที่มากกว่านั้นไม่ถูกต้อง

ผลลัพธ์

ฟิลด์ความหมาย
KindxickPalette, xickAutomatic, xickSystem หรือ xickInvalid
RawIndexค่าอินพุตตามเดิมโดยไม่เปลี่ยนแปลง
PaletteSlotช่องพาเลตกายภาพที่เริ่มนับจากศูนย์ หรือ -1 เมื่อโทเคนไม่อิงกับพาเลต
SystemColorRoleบทบาทระบบเชิงความหมาย รวมถึงข้อความหน้าต่าง พื้นหลังหน้าต่าง ข้อความแผนภูมิ พื้นหลังแผนภูมิ สีกลางของแผนภูมิ และข้อความคำแนะนำเครื่องมือ
ARGBสีเจาะจงที่ปรับมาตรฐานแล้วเมื่อ HasResolvedColor เป็น true
HasResolvedColorเป็น true เฉพาะเมื่อการค้นหาพาเลต สีรูปแบบคงที่ หรือ callback ที่ระบุชัดเจนสร้างค่า RGB ขึ้น

ค่าส่งกลับของฟังก์ชันสอดคล้องกับ HasResolvedColor การจัดประเภทยังคงพร้อมใช้งานใน AResolution แม้เมื่อฟังก์ชันส่งกลับ false

สัญญาสีระบบ

โอเวอร์โหลดแบบสั้นไม่อ่านเดสก์ท็อป Windows ปัจจุบันเลย จึงทิ้งสีอัตโนมัติและสีระบบที่ขึ้นกับสภาพแวดล้อมไว้โดยไม่แก้ค่า

โอเวอร์โหลดแบบยาวส่งทั้ง TXLSSystemColorRole และ TXLSIndexedColorRole ไปยัง ASystemResolver เพื่อให้ผู้เรียกใช้นโยบาย UI การส่งออก หรือการเรนเดอร์แบบไม่มีส่วนติดต่อได้อย่างชัดเจน

ผลลัพธ์ของ callback ต้องใช้ลำดับช่องสัญญาณแบบ $AARRGGBB ไบต์อัลฟาที่เป็นศูนย์จะถูกปรับเป็น $FF ส่วนผลลัพธ์ callback ที่เป็น false จะทิ้งโทเคนเชิงความหมายไว้ในสถานะจัดประเภทแล้วแต่ยังไม่แก้ค่า

ค่า COLORREF ของ Windows ใช้ลำดับช่องสัญญาณแบบ $00BBGGRR และต้องแปลงเป็น $AARRGGBB ก่อนที่ callback จะส่งกลับ

โทเคนที่ไม่ถูกต้องจะไม่เรียก callback เด็ดขาด และโทเคนสีกลางของแผนภูมิแบบคงที่ของ BIFF ถูกแก้ค่าเป็นสีดำแบบทึบโดยไม่ต้องใช้ callback

ตัวอย่าง

if Workbook.ResolveIndexedColor(12, xicsPublicColorIndex, Resolution) then
  UseArgb(Resolution.ARGB);

if not Workbook.ResolveIndexedColor($40, xicsBiffIcv, Resolution) then
  Assert(Resolution.Kind = xickSystem);

ดูเพิ่มเติม