線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1212
推到 Plurk!
推到 Facebook!

TdxDBGrid表格中的欄位,符合指定條件讓背景變成指定顏色

尚未結案
hsienche
一般會員


發表:6
回覆:9
積分:3
註冊:2003-08-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-05 16:47:33 IP:163.17.xxx.xxx 未訂閱
各位大大, 1.如題,我已經搜尋相關文章,但無合適答案,請協助 2.小弟使用TdxDBGrid,有訂單開立日期,採購、生產、銷售等三個預定完成日與實際完成日期,預定完成日需要與實際完成日期做比較。 3.若實際完成日期(若空白預設值為今天)接近預定完成日(差一日)則該欄背景變成黃色 4.若實際完成日期(若空白預設值為今天)大於預定完成日則該欄背景變成紅色 5.正常的話為預設的底色 ~拜託各位大大給予協助~ SNOOPY
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-05 17:43:01 IP:61.70.xxx.xxx 未訂閱
您好: 以下是控制,紅色地方是我控制如果Payed欄位大於10的時候會讓他變顏色,您自己改改看吧.
procedure TzManagement.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
with DBGrid1.Canvas do
 begin
  // 先預設顏色
  if GDSelected in State then // Select光棒停在此Cell
   begin
    Font.Color:=clHighLightText; // 正常的DBGrid顏色
    Brush.Color:=$007D3F00; // 正常的DBGrid顏色
   end
   else begin // Select光棒未停在此Cell
    Font.Color:=clBlack; // 正常的DBGrid顏色
    Brush.color:=clWhite; // 正常的DBGrid顏色
   end;
  // 設定指定Cell的顏色
//  if DataCol=1 then // 第二個欄位
  if (GDSelected in State) then // Select光棒停在此Cell
   begin
    if ((Sender as TDBGrid).DataSource.DataSet.FieldByName('Payed').AsInteger>=10)
     then Brush.Color:=$007D3F00;// 字變紅色加一點白色調(這樣反白效果才會好)
   end
   else begin // Select光棒未停在此Cell
    if ((Sender as TDBGrid).DataSource.DataSet.FieldByName('Payed').AsInteger>=10)
      then Brush.Color:=$00A4A4FF; // 字變紅色
   end;
      // 一定要執行繪圖的動作
  DbGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,[]);
 end;
end;
發表人 - supman 於 2005/07/05 17:52:14
hsienche
一般會員


發表:6
回覆:9
積分:3
註冊:2003-08-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-05 17:53:05 IP:163.17.xxx.xxx 未訂閱
supman 大大您好: 您的方式只能使用於標準的TDBGrid元件, 但因小弟使用的市非標準的TdxDBGrid元件, 所以無法使用,不過還是謝謝您!
系統時間:2024-06-26 15:33:08
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!