[delphi-users:2537] DBGrid の色を指定したい。

1,235 views
Skip to first unread message

大須賀

unread,
May 19, 2012, 8:13:34 PM5/19/12
to DelphiML
大須賀です。
DelphiXE、 Windows7 で勉強しています。

DBGrid の カラムの色、タイトル行の色を指定したいのですが
うまくいきません。

「DBGrid1.Columns の編集」でカラム 4 を選択します。
オブジェクト インスペクターで
DBGrid1.Column[4].Color clMoneyGreen を選択します。
この時点では カラムの色は .clMoneyGreen になります。
しかしPrg実行すると カラムの色は元の clWindow のままです。

DBGrid1では OnCellClick,, OnDrawColumnCell, OnKeyPress
を使用しています。

またDBGrid1の特定のタイトルの色も指定したいのですが
オブジェクト インスペクターで 指定しても色は変化しません。

よろしくお教え願います。

osuk...@uv.tnc.ne.jp

大須賀明美






MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
練習や試合の予定調整は「とっとと決め太郎」におまかせ!
http://ad.freeml.com/cgi-bin/sa.cgi?id=it5aI
------------------------------------------------------[freeml byGMO]--

しばじゅんた

unread,
May 19, 2012, 9:06:26 PM5/19/12
to DelphiML

しばじゅんたです。

タイトルカラムは
DBGrid1->Columns->Items[4]->Color = clRed;
ですかね、ヘルプを見ただけで済みません。


データ行列は
void __fastcall TForm1::DBGrid1DrawColumnCell(TObject *Sender,
const TRect &Rect, int DataCol, TColumn *Column,
TGridDrawState State)
{
if( DataCol == 4 )
{
TRect r;
r.Left = Rect.Left+2;
r.Top = Rect.Top+2;
r.Right = Rect.Right-2;
r.Bottom = Rect.Bottom-2;

DBGrid1->Canvas->Brush->Color = clYellow;
DBGrid1->Canvas->Font->Color = clBlue;
DBGrid1->Canvas->FillRect(Rect);
DBGrid1->Canvas->TextRect(r,r.Left,r.Top, データソースのフィールド値 );
}
}

Cの書き方で済みません、参考になれば。

--------------------------------------------------
From: "大須賀" <delphi...@freeml.com>
Sent: Sunday, May 20, 2012 9:13 AM
To: "DelphiML" <delphi...@freeml.com>
Subject: [delphi-users:2537] DBGrid の色を指定したい。
MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
毎日豪華プレゼントキャンペーン開催中!くまポン
http://ad.freeml.com/cgi-bin/sa.cgi?id=it5Ez
------------------------------------------------------[freeml byGMO]--

大須賀

unread,
May 19, 2012, 10:48:10 PM5/19/12
to delphi...@freeml.com
しばじゅんた様
早速の御支援有りがとうございます。

タイトルカラムの色は FormShow で以下記述しましたが変化ありません。

Form1.DBGrid1.Columns[4].Title.Color := clMoneyGreen;

オブジェクト インスペクターで指定してもタイトル色は変化しません。
しかし Alignment や Caption は反映します。
Colorプロパティだけ オブジェクト インスペクター指定を反映しません。

折角カラム色指定のProgramまでお教えいただいたのですが
できれば オブジェクト インスペクターで色指定を行いたいです。

osuk...@uv.tnc.ne.jp
大須賀明美
MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
いつでもどこでもメールチェック!freemlのスマートフォンアプリ
http://ad.freeml.com/cgi-bin/sa.cgi?id=it6QE
------------------------------------------------------[freeml byGMO]--

しばじゅんた

unread,
May 19, 2012, 11:22:56 PM5/19/12
to delphi...@freeml.com
今自分でやっても変わるのですが(C++Builder6ですが)。
今、取り組んでいるC++BuiderXE でやってみました、ホントだ変わりませんね。
自分はC++Builder6からXEに移行中で、DBGridを全て使わないように
書き直しているので気づきませんでした。どこか変わったのですかね。

こちらに何やら出来ていそうな記述がありました。
http://hiderin.air-nifty.com/delphi/tdbgrid/index.html

--------------------------------------------------
From: "大須賀" <delphi...@freeml.com>
Sent: Sunday, May 20, 2012 11:48 AM
To: <delphi...@freeml.com>
Subject: [delphi-users:2539] Re: DBGrid の色を指定したい。
>> DBGrid1->Canvas->TextRect(r,r.Left,r.Top, データソースのフィールド );
MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
☆豪華アイテムプレゼント☆ゲーム初心者応援キャンペーン実施中
http://ad.freeml.com/cgi-bin/sa.cgi?id=it7qI
------------------------------------------------------[freeml byGMO]--

五十嵐 祐介

unread,
May 20, 2012, 3:22:26 AM5/20/12
to delphi...@freeml.com
五十嵐です。

Delphi XE2 + ms win7.環境です。

【Columnの色指定について】
オブジェクトインスペクタでColumnの色指定可能です。

また、以下のコードによる色指定も可能でした。
procedure TForm1.Button1Click(Sender: TObject);
begin
DBGrid1.Columns[4].Color := clMoneyGreen;
end;
end.

【Titleの色指定について】
オブジェクトインスペクタで色指定しても、反映されませんね。。。

以下のコードによる色指定も反映されませんでした。
procedure TForm1.Button1Click(Sender: TObject);
begin
DBGrid1.Columns[4].Title.Color := clMoneyGreen;
end;
end.


参考まで。


大須賀 <delphi...@freeml.com>さん:
MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
毎日コツコツポイント貯めて電子マネーやギフト券に交換しよう!
http://ad.freeml.com/cgi-bin/sa.cgi?id=it9VR
------------------------------------------------------[freeml byGMO]--

大須賀

unread,
May 21, 2012, 8:02:16 AM5/21/12
to delphi...@freeml.com
しばじゅんた様、 五十嵐祐介様
御支援有り難うございます。

勤務先で使用するプログラムではDBGrid をよく使用します。
DrawColumnCell で行の色を変え区別、 さらに コラムの色を
変えて強調表示すると作業者が的確に目的行を選択できます。

以前のD7の時はコラム、タイトルの色は変えられましたがマウススクロールができませんでした。DelphiXEでは逆になってしまいました。
残念ですがとりあえずこのまま使用します。
有り難うございました。

osuk...@uv.tnc.ne.jp
大須賀明美









----- Original Message -----
MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
Wポイントでますますおトク!賢くネットショッピングしよう!
http://ad.freeml.com/cgi-bin/sa.cgi?id=itXgf
------------------------------------------------------[freeml byGMO]--

しばじゅんた

unread,
May 21, 2012, 8:22:06 AM5/21/12
to delphi...@freeml.com
大須賀さん

XEでDBGridのヘッダでカラム別に背景色Title.Colorが設定出来ない。

ネットで色々探して見ましたが、この件見当たらないですねぇ。
新しく出来た DrawingStyleが何か曲者と思いますが、
gdsThemedとかgdsGradientなら分かりますがgdsClassicなら
カラム個別に背景が設定出来ても良いはず、バグでしょ?とか思いました。
どなたか識者の方がVCLソースを見てくれるなどしないと・・・。
そういうレベルなのか簡単なレベルなのか、何ででしょうねぇ?
DefaultDwrawingをfalseにして、ガチガチ書く(でも固定行を書けるのか?)
自分、超低レベルですので済みません。

マウススクロールが出来るようになったのですか?へぇ

--------------------------------------------------
From: "大須賀" <delphi...@freeml.com>
Sent: Monday, May 21, 2012 9:02 PM
To: <delphi...@freeml.com>
Subject: [delphi-users:2542] Re: DBGrid の色を指定したい。
MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
使い方はいろいろ♪一部のメンバーだけにMLメールを送ろう!
http://ad.freeml.com/cgi-bin/sa.cgi?id=itX3W
------------------------------------------------------[freeml byGMO]--

Reply all
Reply to author
Forward
0 new messages