
請問如何改默認邊框顏色,還有DrawGrid的表格顏色。比如改成紅色。
要改的控制元件的邊框顏色比較多,自己一個個用Canvas在Paint中畫太麻煩,有沒有更簡潔的方法?
uj5u.com熱心網友回復:
VCL應該比較麻煩,比如修改相關單元的源代碼加入工程中編譯,或者自定義控制元件。或者看看有沒有第三方控制元件支持美化的。
或者看看FMX類別庫是不是方便點。
或者入鄉隨俗。
uj5u.com熱心網友回復:
嗯,我用的是“Data Controls”下面的“TDBGrid”控制元件。這個控制元件有一個 OnDrawColumnCel事件。
我的樣例代碼,ADOQuery_department是ADO控制元件,可從資料庫獲取資料,DataSource_department是資料源控制元件,DBGrid_department是顯示控制元件。
可根據資料庫中的某列資料,來顯示不同的字體顏色或者背景色,或者框。
void __fastcall TForm_department::DBGrid_departmentDrawColumnCell(TObject *Sender,
const TRect &Rect, int DataCol, TColumn *Column, TGridDrawState State)
{
try
{
if(ADOQuery_department->FieldByName("valid_flag")->AsInteger == 1)
{
//如果該行是正常的部門
//DBGrid_department->Canvas->Brush->Color = clRed;//背景顏色
DBGrid_department->Canvas->Font->Color = clBlack;//字顏色
DBGrid_department->Canvas->Pen->Color = clRed;//畫筆顏色
DBGrid_department->Canvas->MoveTo(Rect.Left,Rect.Bottom);//畫筆定位
DBGrid_department->Canvas->LineTo(Rect.Right,Rect.Bottom);//下橫線
DBGrid_department->Canvas->LineTo(Rect.Right,Rect.Top);//右橫線
DBGrid_department->Canvas->LineTo(Rect.Left,Rect.Top);//上橫線
DBGrid_department->Canvas->LineTo(Rect.Left,Rect.Bottom);//左橫線
}
else
{
//如果該行是無效的部門
//DBGrid_department->Canvas->Brush->Color = clRed;//背景顏色
DBGrid_department->Canvas->Font->Color = clBlue;//字顏色
}
DBGrid_department->DefaultDrawColumnCell(Rect,DataCol,Column,State);
}
catch(...)
{}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/52017.html
標籤:VCL組件使用和開發
上一篇:Mifare 1卡(M1卡、IC卡)讀寫操作及作業原理整理
下一篇:QWidget: Must construct a QApplication before a QPaintDevice怎么破?
