FireMonkey HD表單沒有DBgrid功能,用TStringGrid的話無DrawColumnCell,怎么改變單元格顏色呢?
FM表單如何使TStringGrid的單元格變色。
舉例代碼?
目前中國還沒有誰給出答案?
uj5u.com熱心網友回復:
在線等牛人出現?貌似最簡單,D7能實作,但XE2 FM就不能?uj5u.com熱心網友回復:
可以把FMX.Grid這個單元,復制到你的工程所在目錄下,任意修改。uj5u.com熱心網友回復:
在表單上放一個TEdit控制元件,右鍵修改自定義樣式,選中background那一條,修改Fill.Color為你想要的顏色。然后可以把表單上那個TEdit刪掉。復制FMX.Grid到你的工程下,做如下修改,這樣可以實作隔行變色的效果。因為grid里的每一格子都是一個TEdit控制元件,所以通過代碼讓它應用我們自定義的樣式就行了。關鍵是這一句:FCellControls[i].StyleLookup := 'Edit1Style1';procedure TColumn.UpdateColumn;
var
i, C, X: Integer;
V: Variant;
begin
if Grid = nil then
Exit;
FUpdateColumn := True;
try
{ Create controls }
if Length(FCellControls) < Min(Grid.RowCount, Grid.VisibleRows) then
begin
C := High(FCellControls);
SetLength(FCellControls, Min(Grid.RowCount, Grid.VisibleRows));
for i := C + 1 to Min(Grid.RowCount, Grid.VisibleRows) - 1 do
begin
FCellControls[i] := CreateCellControl;
FCellControls[i].Parent := Self;
FCellControls[i].HitTest := False;
FCellControls[i].Visible := False;
FCellControls[i].Locked := True;
FCellControls[i].Stored := False;
if i mod 2 = 0 then
begin
FCellControls[i].StyleLookup := 'Edit1Style1';
end;
FCellControls[i].OnCanFocus := DoCanFocus;
FCellControls[i].OnEnter := DoEnter;
FCellControls[i].OnKeyDown := DoKeyDown;
end;
end;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/130155.html
標籤:語言基礎/算法/系統設計
