我們剛剛從Delphi 2010升級到XE4,並首次使用FireMonkey,因此在黑暗中磕磕絆絆地試圖弄清楚它是如何工作的。Delphi XE4 Firemonkey網格控件 - 單獨設計單元格
根據一個查詢後,我試圖讓一個TGrid組件中的單個單元格基於一些規則顯示不同。我已經通過張貼麥克薩頓有用的代碼工作:
Firemonkey Grid Control - Styling a Cell based on a value (via the OnGetValue function call)
我不得不做出一些改變,以得到它在XE4編譯;它運行代碼時看起來都不錯,除了:
- 字體填充不被識別,所以現在已經清空了這一點。
- 字體樣式根本沒有改變,它顯示爲默認樣式,無論如何。
相關的代碼(其餘是相當多按照上面的鏈接):
Procedure TFinancialCell.ApplyStyle;
var
T: TFMXObject;
begin
inherited;
ApplyStyling;
end;
Procedure TFinancialCell.ApplyStyling;
begin
// If IsNegative then
// FontFill.Color:=claRed
// else
// FontFill.Color:=claBlack;
Font.Style:=[TFontStyle.fsItalic];
If IsImportant then
Font.Style:=[TFontStyle.fsBold]
else
Font.Style:=[];
If Assigned(Font.OnChanged) then
Font.OnChanged(Font);
Repaint;
end;
的IsImportant標誌被設置正確,這樣似乎並不成爲問題。
任何與此有關的幫助將非常感激。提前抱歉,我可能會錯過任何愚蠢的東西。
非常好的問題,我想知道這個自己。 – 2013-05-10 12:31:54
我目前發現的唯一其他可能有用的信息是:http://monkeystyler.com/blog/entry/applystyle-and-freestyle-in-firemonkey然而,我不知道這是否與我的查詢有關或不,因爲我不太瞭解樣式代碼。在我的查詢中提到的原始代碼似乎與發佈時嘗試的人員一起工作良好;我不確定是否XE3/XE4更改導致它無法正常工作。 – Alex 2013-05-10 14:37:11