全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1687
推到 Plurk!
推到 Facebook!

將DBGrid整列變色

答題得分者是:hagar
s5633
一般會員


發表:22
回覆:35
積分:21
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-11-27 18:57:27 IP:211.22.xxx.xxx 未訂閱
請問各位大大: 在DBGrid如何將"記錄所指"的那一列整列變顏色 3Q
FrederickPau
資深會員


發表:4
回覆:161
積分:268
註冊:2002-11-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-11-27 19:38:56 IP:61.16.xxx.xxx 未訂閱
dbgrid.options 裡 rowselect 設 true 試試
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-11-27 19:45:55 IP:202.39.xxx.xxx 未訂閱
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if (DBGRID1.DATASOURCE.DataSet.recno = r1) then begin
    dbgrid1.Canvas.Brush.Color := $00DBFDE6;
    dbgrid1.Font.Color := clRed;
  end else begin
    dbgrid1.Canvas.Brush.Color := OBColor;
    dbgrid1.Font.Color := OFColor;
  end;
  DBGRID1.Canvas.FillRect(Rect);
  DBGRID1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
-- Everything I say is a lie.
s5633
一般會員


發表:22
回覆:35
積分:21
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-11-27 22:28:14 IP:61.30.xxx.xxx 未訂閱
謝謝hagar: 我將你的回覆改成如下,就達成我想要的了 可是當r1=-1時會整個dbgrid全部變成同一個顏色 請問要如何修正?...3Q if gdSelected in State then exit; if (DBGRID1.DATASOURCE.DataSet.recno = r1) then begin dbgrid1.Canvas.Brush.Color := $00DBFDE6; end else begin dbgrid1.Canvas.Brush.Color := clWindow; end; DBGRID1.DefaultDrawColumnCell(Rect, DataCol, Column, State); 發表人 - s5633 於 2002/11/27 22:29:14
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-11-28 07:26:50 IP:202.39.xxx.xxx 未訂閱
  if gdSelected in State then exit;
// 加上底下這行
  if (DBGRID1.DATASOURCE.DataSet.recno = -1) then Exit;
  if (DBGRID1.DATASOURCE.DataSet.recno = r1) then
  begin
    dbgrid1.Canvas.Brush.Color := $00DBFDE6;
  end
  else begin
    dbgrid1.Canvas.Brush.Color := clWindow;
  end;
  DBGRID1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
-- Everything I say is a lie.
s5633
一般會員


發表:22
回覆:35
積分:21
註冊:2002-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-11-29 09:55:51 IP:211.22.xxx.xxx 未訂閱
引言:
  if gdSelected in State then exit;
// 加上底下這行
  if (DBGRID1.DATASOURCE.DataSet.recno = -1) then Exit;
  if (DBGRID1.DATASOURCE.DataSet.recno = r1) then
  begin
    dbgrid1.Canvas.Brush.Color := $00DBFDE6;
  end
  else begin
    dbgrid1.Canvas.Brush.Color := clWindow;
  end;
  DBGRID1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
-- Everything I say is a lie.
請問hagar: 有辦法讓 recno = -1 時整列變色嗎? 3Q
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-12-03 19:23:43 IP:202.39.xxx.xxx 未訂閱
  if gdSelected in State then exit;
  if (DBGRID1.DATASOURCE.DataSet.recno = -1) then
  begin
    dbgrid1.Canvas.Brush.Color := clYellow
  end
  else if (DBGRID1.DATASOURCE.DataSet.recno = r1) then
  begin
    dbgrid1.Canvas.Brush.Color := $00DBFDE6;
  end
  else begin
    dbgrid1.Canvas.Brush.Color := clWindow;
  end;
  DBGRID1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
-- Everything I say is a lie.
新手上路
一般會員


發表:17
回覆:7
積分:4
註冊:2002-11-19

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-02-19 14:48:04 IP:211.23.xxx.xxx 未訂閱
抱歉! 請問為何我的 DBGRID1.DATASOURCE.DataSet.recno的值都是-1呢!? 有誰可以為我解答嗎?謝謝!
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-02-19 16:11:39 IP:202.39.xxx.xxx 未訂閱
引言: 抱歉! 請問為何我的 DBGRID1.DATASOURCE.DataSet.recno的值都是-1呢!? 有誰可以為我解答嗎?謝謝!
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=25748
系統時間:2024-05-06 4:20:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!