मैं ऑनजीटवेल कॉल द्वारा खींचा जा रहा एक टीजीआईडी सेल शैली के लिए अनुशंसित समाधान की तलाश कर रहा हूं (जिसे कोशिकाओं को देखने के लिए कहा जाता है)। पृष्ठभूमि के लिए, माइक द्वारा एक उत्कृष्ट प्रतिक्रिया ने दिखाया कि सेल बनने पर टी -लाइन संपत्ति को कैसे लागू किया जाए; लेकिन मेरी अगली चुनौती सेल सामग्री को रंग दे रही है।फायरमोनकी ग्रिड कंट्रोल - एक मूल्य के आधार पर एक सेल स्टाइल करना (ऑनगेटवेल्यू फ़ंक्शन कॉल के माध्यम से)
उद्देश्य सेल विशेषताएं (फ़ॉन्ट, शैली, रंग आदि ...) मूल्य के बारे में मैं सेल "मान" के रूप में वापस जाने के लिए कर रहा हूँ के बदलने के लिए है। नीचे दिए गए उदाहरण में; यह OnGetValue "मान" के लिए एक शैली लागू करेगा जो वापस किया जा रहा है। यह अच्छी तरह से हो सकता है कि हमें इसे एफएम स्टाइलशीट के माध्यम से करना है; या हम सीधे TText विशेषताओं पर जा सकते हैं? आदर्श रूप में, दोनों परिदृश्यों बहुत अच्छा होगा - लेकिन इस स्तर पर मैं या तो समाधान ले जाएगा ... (; -।। पहले से
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Objects, FMX.Grid,
FMX.Layouts, FMX.Edit;
type
TForm1 = class(TForm)
Grid1: TGrid;
Button1: TButton;
StyleBook1: TStyleBook;
procedure Grid1GetValue(Sender: TObject; const Col, Row: Integer;
var Value: Variant);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TStringColNum = class(TStringColumn)
private
function CreateCellControl: TStyledControl; override;
published
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
function TStringColNum.CreateCellControl: TStyledControl;
begin
Result:=TTextCell.Create(Self);
TTextCell(Result).TextAlign := TTextAlign.taTrailing;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Grid1.AddObject(TStringColumn.Create(Self));
Grid1.AddObject(TStringColNum.Create(Self)); // Right Aligned column?
Grid1.RowCount:=5000;
Grid1.ShowScrollBars:=True;
end;
procedure TForm1.Grid1GetValue(Sender: TObject; const Col, Row: Integer;
var Value: Variant);
begin
if Col=0 then
Value:='Row '+IntToStr(Row);
if Col=1 then
Value := 'Row '+IntToStr(Row);
// Apply style based on value ?
end;
end.
बहुत धन्यवाद, इयान>
आप 'एक मूल्य के आधार पर' को परिभाषित कर सकते हैं? क्या आपका मतलब है, कहें, यदि मूल्य नकारात्मक है तो फ़ॉन्ट लाल होगा आदि? –
हाय माइक - हाँ; सटीक। मेरे पास दो परिदृश्य हैं लेकिन दोनों एक ही सिद्धांत हैं। एक परिदृश्य ऋणात्मक मूल्य लाल प्रदर्शित किया जाना है और दूसरा परिदृश्य सूची में किसी आइटम को "बोल्ड" करना है (जो मैं चुनता हूं - ग्रिड आयोजित विवरण के कारण; महत्वपूर्ण ग्राहक इत्यादि ...)। अग्रिम में धन्यवाद। इयान। – Ian