delphi使用RichView控制元件 表格顏色
TRichView表格顏色
介紹
圖
表格顏色
內側邊框顏色
說明
表格顏色屬性(Color
, BorderColor
, BorderLightColor
, CellBorderColor
, CellBorderColor
)如圖表格顏色所示。
表格內側邊框顏色屬性(HRuleColor
,VRuleColor
)如圖內側邊框顏色所示。
表格背景顏色可以是透明的 table.Color = clNone
。
單元格可以單獨設定顏色,單獨設定不透明度。 可以指定行和列預設顏色。
屬性
表格背景顏色TRVTableItemInfo.Color
property Color: TColor;
設定為 clNone
Opacity
屬性設定表格背景的不透明度。
如果表格有背景影象,影象將繪製在背景顏色之上。
預設值 clWindow
單元格背景顏色TRVTableCellData.Color
property Color: TColor;
設定為 clNone 時為透明背景。
此屬性對應於 HTML 中的 td bgcolor屬性。
使用者無法撤消/重做對該屬性的直接分配,請使用 table.SetCellColor
。
如果此屬性的值為 clNone,則使用行和列預設顏色。
預設值 clNone
表格邊框顏色TRVTableItemInfo.BorderColor
property BorderColor: TColor;
此屬性定義平面邊框的顏色或表格周圍 3d 邊框的“暗色”顏色。
此屬性對應於 HTML 的table bordercolor或 table bordercolordark屬性。
預設值 clWindowText
單元格邊框顏色TRVTableItemInfo.CellBorderColor
property CellBorderColor: TColor;
此屬性定義平面單元格邊框的顏色或單元格周圍 3d 邊框的“暗色”顏色。
這個值可以被單元格的BorderColor
覆蓋。
只有使用 CSS才能將此表屬性儲存在 HTML 中。
預設值 clWindowText
單元格邊框顏色TRVTableCellData.BorderColor
property BorderColor: TColor;
此屬性定義平面單元格邊框的顏色或單元格周圍 3d 邊框的“暗色”顏色。(在version 1.6 中引入)
如果此屬性的值為 clNone,則單元格邊框顏色使用 table.CellBorderColor
屬性的顏色。
使用者無法撤消/重做對該屬性的直接分配,請使用 table.SetCellBorderColor
。
預設值 clNone
表格邊框亮色TRVTableItemInfo.BorderLightColor
此屬性定義了表格周圍 3d 邊框的“亮色”顏色。
property BorderLightColor: TColor;
此屬性對應於 HTML的table bordercolorlight屬性。
預設值 clBtnHighlight
單元格邊框亮色TRVTableItemInfo.CellBorderLightColor
property CellBorderLightColor: TColor;
此屬性定義了單元格周圍 3d 邊框的“亮色”顏色。
這個值可以被單元格的BorderLightColor
覆蓋。
只有使用 CSS才能將此表屬性儲存在 HTML 中。
預設值 clBtnHighlight
單元格邊框亮色TRVTableCellData.BorderLightColor
property BorderLightColor: TColor;
此屬性定義了單元格周圍 3d 邊框的“亮色”顏色。(在version 1.6 中引入)
如果此屬性的值為 clNone,則單元格邊框顏色使用 table.CellBorderLightColor
屬性的顏色。
使用者無法撤消/重做對此屬性的直接分配,請使用 table.SetCellBorderLightColor
。
預設值 clNone
行和列預設顏色
property HeadingRowColor: TColor;
property LastRowColor: TColor;
property OddRowsColor: TColor;
property EvenRowsColor: TColor;
property FirstColumnColor: TColor;
property LastColumnColor: TColor;
property OddColumnsColor: TColor;
property EvenColumnsColor: TColor;
一組定義特定行和列中單元格預設顏色的屬性。(在version 17 中引入)
如果屬性的值為 clNone,則單元格的顏色使用 table.Color
屬性的顏色。
可以在 Cell.Color
屬性中定義指定單元格的顏色。
TRVTableItemInfo.HeadingRowColor
標題行的顏色。 如果此表沒有標題行,但有 HeadingRowColor <> clNone
,則此顏色用於第一行。
預設值 clNone
TRVTableItemInfo.LastRowColor
最後一行的顏色。
預設值 clNone
TRVTableItemInfo.OddRowsColor
奇數行背景色。
預設值 clNone
TRVTableItemInfo.EvenRowsColor
偶數行背景色。
預設值 clNone
TRVTableItemInfo.FirstColumnColor
第一列的顏色。
預設值 clNone
TRVTableItemInfo.LastColumnColor
最後一列的顏色。
預設值 clNone
TRVTableItemInfo.OddColumnsColor
奇數列背景色。
預設值 clNone
TRVTableItemInfo.EvenColumnsColor
偶數列背景色。
預設值 clNone
注意
如果 FirstColumnColor<>clNone
,列交替顏色從第二列開始,否則從第一列開始。每個波段都有 ColBandSize
列。
行交替顏色從表格標題行之後的第一行開始。 HeadingRowCount>0
表示定義的標題行數。 否則,如果 HeadingRowColor<>clNone
,則假定第一行為標題行。 否則,行交替顏色從第一行開始。 每個波段都有 RowBandSize
行。
顏色具有以下優先順序(僅考慮具有不同於 clNone 值的屬性):HeadingRowColor
> LastRowColor
> FirstColumnColor
> LastColumnColor
> OddColumnsColor
和 EvenColumnsColor
> OddRowsColor
和 EvenRowsColor
。
交替行數TRVTableItemInfo. RowBandSize
property RowBandSize: Integer;
指定交替行顏色中的行數。(在version 17 中引入)
標題行可以從波段中排除。
預設值 1
交替列數TRVTableItemInfo.ColBandSize
property ColBandSize: Integer;
指定交替列顏色中的列數。(在version 17 中引入)
第一列可以從波段中排除。
預設值 1
表格背景色不透明度TRVTableItemInfo.Opacity
property Opacity: TRVOpacity;
不透明度僅應用於背景顏色填充,而不應用於背景影象。(在version 16 中引入)
table.Color <> clNone
時此屬性有效。
預設值 100000 (100%)
單元格背景色不透明度TRVTableCellData.Opacity
property Opacity: TRVOpacity;
不透明度僅應用於背景顏色填充,而不應用於背景影象。(在version 16 中引入)
Cell.Color <> clNone
時此屬性有效。
使用者無法撤消/重做對該屬性的直接分配,請使用 table.SetCellOpacity
。
預設值 100000 (100%)
TRVOpacity Type
Unit RVStyle;
type
TRVOpacity = type Integer;
以 1/1000 的百分比指定物件不透明度。 有效值在 0..100 000 範圍內。值越大,物件的透明度越低。
例如:
- 0表示完全透明,不透明度為0%。
- 100 000 表示完全不透明,不透明度為100%。
- 50 500 表示不透明度為 50.5%。
在物理上,螢幕和其他裝置僅支援 256 級透明度。 選擇更高的精度範圍是為了方便以百分比形式指定不透明度。
內側邊框水平線顏色TRVTableItemInfo.HRuleColor
property HRuleColor: TColor;
指定單元格之間的水平線的顏色。
僅當 HRuleWidth
>0 時,水平線才可見
預設值 clWindowText
內側邊框垂直線顏色TRVTableItemInfo.VRuleColor
property VRuleColor: TColor;
指定單元格之間的垂直線的顏色
僅當VRuleWidth
>0 時,垂直線才可見
預設值 clWindowText
方法
設定單元格背景顏色TRVTableItemInfo.SetCellColor
procedure SetCellColor(Value: TColor; Row,Col: Integer);
為 Cells[Row, Col].Color
賦值,作為編輯操作。
與直接分配給 Cells[Row, Col].Color 屬性不同,在 TRichViewEdit 中插入的表(插入後)呼叫此方法,則可以撤消/重做此方法。
設定單元格邊框顏色TRVTableItemInfo.SetCellBorderColor
procedure SetCellBorderColor(Value: TColor; Row,Col: Integer);
為 Cells[Row, Col].BorderColor
賦值,作為編輯操作。(在version 1.6 中引入)
與直接分配給 Cells[Row, Col].BorderColor 屬性不同,在 TRichViewEdit 中插入的表(插入後)呼叫此方法,則可以撤消/重做此方法。
設定單元格邊框亮色TRVTableItemInfo.SetCellBorderLightColor
procedure SetCellBorderLightColor(Value: TColor; Row,Col: Integer);
為 Cells[Row**, **Col].BorderLightColor 賦值,作為編輯操作。(在version 1.6 中引入)
與直接分配給 Cells[Row, Col].BorderLightColor 屬性不同,在 TRichViewEdit 中插入的表(插入後)呼叫此方法,則可以撤消/重做此方法。
設定單元格背景色不透明度TRVTableItemInfo.SetCellOpacity
procedure SetCellOpacity(Value: TRVOpacity; Row,Col: Integer);
為 Cells[Row, Col].Opacity 賦值,作為編輯操作。(在version 1.6 中引入)
與直接分配給 Cells[Row, Col].Opacity 屬性不同,在 TRichViewEdit 中插入的表(插入後)呼叫此方法,則可以撤消/重做此方法。
例子
設定表格顏色
uses RVTable;
procedure TForm1.Button1Click(Sender: TObject);
var
Table: TRVTableItemInfo;
Row, Col: Integer;
begin
//建立6行5列的表格
Table := TRVTableItemInfo.CreateEx(6, 5, RichViewEdit1.RVData);
Table.BestWidth := 400;
Table.BorderWidth := 3;
Table.CellBorderWidth := 1;
//設定表格和單元格邊框樣式為平面邊框
Table.BorderStyle := rvtbColor;
Table.CellBorderStyle := rvtbColor;
//設定表格背景色
Table.Color := $00A5CCE7;
//設定表格邊框顏色
Table.BorderColor := clGray;
//設定單元格邊框顏色
Table.CellBorderColor := clBlack;
//設定第一行顏色
for Col := 0 to Table.Rows[0].Count - 1 do
Table.Cells[0, Col].Color := $00A5E1F8;
//也可以通過設定標題行顏色實現
//Table.HeadingRowColor := $00A5E1F8;
//設定第一列顏色
for Row := 1 to Table.Rows.Count - 1 do
Table.Cells[Row, 0].Color := $00A5E1F8;
//也可以通過設定第一列顏色實現
//Table.FirstColumnColor := $00A5E1F8;
//設定奇數行顏色
//如果使用Cells.Color方法設定第1行顏色,從第3行開始變色(OddRowsColor顏色的優先順序低於Cells.Color的優先順序)
//如果使用HeadingRowColor方法設定第1行顏色,從第2行開始變色
Table.OddRowsColor := clCream;
//將表格新增到文件中
RichViewEdit1.InsertItem('', Table);
end;
修改顏色
uses RVTable, RVItem;
procedure TForm1.Button2Click(Sender: TObject);
var
Item: TCustomRVItemInfo;
Table: TRVTableItemInfo;
Data: Integer;
Rve: TCustomRichViewEdit;
ItemNo: Integer;
begin
//獲取當前選擇的表格
if not RichViewEdit1.CanChange or
not RichViewEdit1.GetCurrentItemEx(TRVTableItemInfo, Rve, Item) then
Exit;
Table := TRVTableItemInfo(Item);
ItemNo := Rve.GetItemNo(Table);
Rve.BeginItemModify(ItemNo, Data);
//設定第2行第2列單元格顏色
Table.SetCellColor(clRed, 1, 1);
//設定最後一列的顏色
Table.LastColumnColor := clLime;
//更改交替顏色行數
Table.RowBandSize := 2;
Rve.EndItemModify(ItemNo, Data);
Rve.Change;
end;