2016-10-10 49 views
2

ヘルプが必要です。デルファイ10.1ベルリンを使用しています。 Embarcadero Delphy Code Gearの他のバージョンとはいくつかの違いがあります。私はTGridの行でフォントの色を変更する必要があります。この次のコード私はbackgrond色が変わりますが、私は唯一のフォントの色を変更する必要がありWhith:fmx delphi berlin Tgridの行のフォントの色を変更する方法

aRowColor.Color := arSTATUS_GRID_COLOR[0]; 
    Canvas.FillRect(Bounds, 0, 0, [], 1, aRowColor); 
    Column.DefaultDrawCell(Canvas, Bounds, Row, Value, State); 
+0

こちらをご覧ください:http://stackoverflow.com/questions/32887019/font-color-on-a-st ringgrid-with-firemonkeyまたはthis:http://stackoverflow.com/questions/22095414/how-to-change-background-color-of-fmx-tgrid-row-depend-on-value-in-xe4 –

答えて

3

代わりのColumn.DefaultDrawCell()を呼び出して、あなたはグリッドOnDrawColumnCell()イベントでFMX.Graphics.TCanvas.FillText()を使用することができます。

documentation詳細を説明するが、主なポイントは、サンプルコードCanvas.FillText()

を呼び出す前に、所望の色にCanvas.Fill.Colorを設定することです:

procedure TForm28.Grid1DrawColumnCell(Sender: TObject; const Canvas: TCanvas; 
    const Column: TColumn; const Bounds: TRectF; const Row: Integer; 
    const Value: TValue; const State: TGridDrawStates); 
begin 
    case Row of 
    0: Canvas.Fill.Color := TAlphaColors.Red; 
    1: Canvas.Fill.Color := TAlphaColors.Blue; 
    2: Canvas.Fill.Color := TAlphaColors.Green; 
    3: Canvas.Fill.Color := TAlphaColors.Blueviolet; 
    end; 
    Canvas.FillText(Bounds, Value.AsString, false, 1, [], TTextAlign.Leading, TTextAlign.Center); 
end; 

そして、どのように、それは次のようになります。

enter image description here

+0

ありがとうございます説明。少なくともDelphi v10.2では、TTextAlign.taLeadingは廃止されましたが、TTextAlign.Leadingを使用してください。他の人のセンターや他の人と同じようにtaCenterにも同じことが起こります。 – Ashlar

+0

ヘッドアップのための@Ashlarへの感謝、修正済み –

関連する問題