下面代码是我的一个控件的部分代码,希望对你有帮助: int StartLeft=0;//从那里画的坐标
int Flags;
bool FChecked;
bool FIsPushed;
int FCaptionOffset=5;
Flags=DFCS_BUTTONCHECK;// CheckBox style
if(FChecked)
Flags+=DFCS_CHECKED; // Checked now if(FIsPushed)
{
FIsPushed=false;
Flags+=DFCS_PUSHED; // Push now
}
//画控件
DrawFrameControl(this->Canvas->Handle,&TRect(StartLeft,0,StartLeft+15,13),DFC_BUTTON,Flags); StartLeft+=15+FCaptionOffset; FDrawRight=StartLeft + TextW;// Use for MouseDown
FDrawBottom=H; //画文本
if(FEnabled)// Normal
{
this->Canvas->Brush->Style=bsClear;
this->Canvas->TextOut(StartLeft,0,this->Caption);
}
else // Draw Grayed text
{
TRect Rect=TRect(StartLeft,0,StartLeft + TextW,H); this->Canvas->Brush->Style=bsClear; OffsetRect(&Rect,1,1);
this->Canvas->Font->Color=clBtnHighlight;
DrawText(this->Canvas->Handle,this->Caption.c_str(),-1,&Rect,DT_VCENTER); this->Canvas->Brush->Style=bsClear; OffsetRect(&Rect,-1,-1);
this->Canvas->Font->Color=clBtnShadow;
DrawText(this->Canvas->Handle,this->Caption.c_str(),-1,&Rect,DT_VCENTER);
}
int Flags;
bool FChecked;
bool FIsPushed;
int FCaptionOffset=5;
Flags=DFCS_BUTTONCHECK;// CheckBox style
if(FChecked)
Flags+=DFCS_CHECKED; // Checked now if(FIsPushed)
{
FIsPushed=false;
Flags+=DFCS_PUSHED; // Push now
}
//画控件
DrawFrameControl(this->Canvas->Handle,&TRect(StartLeft,0,StartLeft+15,13),DFC_BUTTON,Flags); StartLeft+=15+FCaptionOffset; FDrawRight=StartLeft + TextW;// Use for MouseDown
FDrawBottom=H; //画文本
if(FEnabled)// Normal
{
this->Canvas->Brush->Style=bsClear;
this->Canvas->TextOut(StartLeft,0,this->Caption);
}
else // Draw Grayed text
{
TRect Rect=TRect(StartLeft,0,StartLeft + TextW,H); this->Canvas->Brush->Style=bsClear; OffsetRect(&Rect,1,1);
this->Canvas->Font->Color=clBtnHighlight;
DrawText(this->Canvas->Handle,this->Caption.c_str(),-1,&Rect,DT_VCENTER); this->Canvas->Brush->Style=bsClear; OffsetRect(&Rect,-1,-1);
this->Canvas->Font->Color=clBtnShadow;
DrawText(this->Canvas->Handle,this->Caption.c_str(),-1,&Rect,DT_VCENTER);
}
显示文本推荐使用TStringGrid,数据库是用TDBGrid.
DrawGrid操作不方便,他用来显示图有些优势。
begin
with StringGrid1 do begin
if ( Cells[Col, Row] = '√') then
Cells[Col, Row]:= '□' // ○
else
Cells[Col, Row]:= '√';
end;
end;
然后你自己判断表格里面的内容,进行相应的操作就行了