OnDrawCell
文字列グリッドをオーバーライドしています。TColor
特定の状況で、システムが描画を行うときに選択した行に使用される法線を使用したい(いいえOnDrawCell
)。
それはどの色ですか?clXXX ?
OnDrawCell
文字列グリッドをオーバーライドしています。TColor
特定の状況で、システムが描画を行うときに選択した行に使用される法線を使用したい(いいえOnDrawCell
)。
それはどの色ですか?clXXX ?
clHighlight
Delphi 2010 より前の色を使用できます。
Delphi 2010 では、TStringGrid、TDrawGrid、および TDBGrid コンポーネントにDrawingStyle
プロパティが追加され、この値(gdsClassic、gdsGradient、gdsThemed)に応じて、この方法で色を計算する必要があります。
1.gdsClassicの使用の ためclHighlight
。
2.for gdsGradient メソッドGradientFillCanvas
を使用します
GradientFillCanvas(Canvas, GetShadowColor(clHighlight, 45), GetShadowColor(clHighlight, 10), LRect, gdVertical);
3.for gdsThemedDrawElement
のメソッドを 呼び出しますTCustomStyleServices
StyleServices.DrawElement(Canvas.Handle, StyleServices.GetElementDetails(tgCellSelected), LRect, ARect);
vcl スタイルが導入された Delphi XE2 (および XE3) では、上記と同じものを使用する必要がありますが、現在のスタイルが「カスタム スタイル」(vcl スタイル) であるかどうかを確認する必要があります。
1. for gdsGradientは、この方法でグラデーションの色を計算する GradientFillCanvas メソッドを使用します
StyleServices.GetElementColor(StyleServices.GetElementDetails(tgGradientCellRowSelectedRight), ecGradientColor1, StartColor); //StartColor is a TColor variable
StyleServices.GetElementColor(StyleServices.GetElementDetails(tgGradientCellRowSelectedRight), ecGradientColor2, EndColor);//EndColor is a TColor variable
2.gdsClassic用
StyleServices.GetElementColor(StyleServices.GetElementDetails(tgClassicCellRowSelectedRight), ecFillColor, LColor); //LColor is a TColor variable
選択した (強調表示された) セル/行を VCL が描画する方法のサンプルを確認したい場合は、TCustomGrid.DrawCellHighlight
メソッドの実装を試してください。