將DBGrid整列變色 |
答題得分者是:hagar
|
s5633
一般會員 發表:22 回覆:35 積分:21 註冊:2002-04-15 發送簡訊給我 |
|
FrederickPau
資深會員 發表:4 回覆:161 積分:268 註冊:2002-11-04 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
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 發送簡訊給我 |
謝謝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 發送簡訊給我 |
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 發送簡訊給我 |
引言:請問hagar: 有辦法讓 recno = -1 時整列變色嗎? 3Qif 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
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
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 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |