procedure TForm1.FormShow(Sender: TObject);
begin
ADOTable1.Open;
end;
procedure TForm1.DBCtrlGrid1PaintPanel(DBCtrlGrid: TDBCtrlGrid;
Index: Integer);
var
Status:string;
Tname:string;
TCap:string;
textrect,CapRect,panelRect:TRect;
begin
with DBCtrlGrid do
begin
//取数据
with datasource.DataSet do
begin
Status := FieldByname('status').AsString;
Tname := FieldByname('name').AsString;
TCap := FieldByname('capacity').AsString+'人';
end;
//确定重绘区域
panelRect.TopLeft := Canvas.PenPos;
panelRect.Bottom := PanelHeight ;
panelRect.Right := PanelWidth ;
Canvas.Font.Assign( Self.Font);
if Status='A' then
begin//空桌
Canvas.Brush.Color := clInfoBk;//
Canvas.Pen.Color := clBlack;
//Canvas.Font.Color := $FF00FF;// 字体为反色
end
else
if Status='B' then
begin//预订
Canvas.Brush.Color := clYellow;// $FFFF00;//黄 底色
Canvas.Pen.Color := clBlack;
//Canvas.Font.Color := not clYellow;// 字体为反色
end
else
if Status='C' then
begin//使用中
Canvas.Brush.Color := Clred;// $FF0000;//红 底色
Canvas.Pen.Color := clBlack;//not $FF0000;
//Canvas.Font.Color := $FFFF00;// 字体为反色
end;
if PanelIndex=Index then
begin
Canvas.Brush.Color := $009CE2C5;// 淡绿色
Canvas.Pen.Color := clBlack;//not $FF0000;
//Canvas.Font.Color := $FFFF00;// 字体为反色
end;
//画格
Canvas.Rectangle(panelRect);
Canvas.Font.Color := clMaroon;
//Canvas.Brush.Style := bsClear;
Canvas.Font.Size:=12;
Canvas.Font.Style:= Canvas.Font.Style + [fsBold];
textrect.Left :=15;
textrect.Top :=5;
textrect.Right := textrect.Left + Canvas.TextWidth(Tname);
textrect.Bottom := textrect.Top + Canvas.TextHeight(Tname);
Canvas.TextRect(textrect,textrect.Left,textrect.Top,Tname);
Canvas.Font.Color := clBlue;
Canvas.Font.Size:=8;
Canvas.Font.Style:= Canvas.Font.Style - [fsBold];
CapRect.Left := 25;
CapRect.Top := textrect.Bottom +3;
CapRect.Right := CapRect.Left + Canvas.TextWidth(TCap);
CapRect.Bottom := CapRect.Top + Canvas.TextHeight(TCap);
Canvas.TextRect(CapRect,CapRect.Left,CapRect.Top,TCap);
end;
end;
procedure TForm1.DBCtrlGrid1DblClick(Sender: TObject);
begin
ShowMessage(ADOTable1.FieldByName('name').AsString);
end;