DBCtrlGrid

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;

 

转载于:https://www.cnblogs.com/tk-del/archive/2012/06/25/2561522.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值