Dbgrid 值 < 0 標示紅色 |
尚未結案
|
miguel
一般會員 發表:26 回覆:20 積分:9 註冊:2002-03-30 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 兩個問題應可利用DBGrid元件的OnDrawColumnCell重繪事件來控制﹕
答一﹕
begin if ADOTable1.FieldByName('W1').AsInteger < 0 then begin DBGrid1.Canvan.Font.Color := clRed; end; if ADOTable1.FieldByName('W2').AsInteger < 0 then begin DBGrid1.Canvas.Font.Color := clRed; end; if ADOTable1.FieldByName('W3').AsInteger < 0 then begin DBGrid1.Canvas.Font.Color := clRed; end; DefaultDrawColumnCell(Rect, DataCol, Column, State); end;答二﹕ 正在測試DBGrid元件相關屬性﹒ <><>===================== 努力,相信會獲得美麗! 忻晟>> 發表人 -
------
忻晟 |
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
提供給您參考
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState); begin if Field.FieldName='CustNo' then begin if field.Value>2100 then begin DBGrid1.canvas.Brush.Color:=clRed; DBGrid1.Canvas.FrameRect(Rect); end; end; if (DbGrid1.DataSource.DataSet.RecNo mod 2)=0 then begin DBGrid1.Canvas.Brush.Color:=clGreen; DBGrid1.Canvas.MoveTo(Rect.Left,Rect.Top); DBGrid1.Canvas.LineTo(Rect.Right,Rect.Top); end; end; |
miguel
一般會員 發表:26 回覆:20 積分:9 註冊:2002-03-30 發送簡訊給我 |
引言: 您好﹗ 兩個問題應可利用DBGrid元件的OnDrawColumnCell重繪事件來控制﹕ 答一﹕sorry 可能是我表達的 不清楚 因為 上面程式 會變成整列 都成紅色,會變成不知道那邊開始出現紅色 只需要 是 負值 出現 紅色即可,其他值顏色不變!! 因使用 bde 所以 RecNo 值都是 -1耶!! 發表人 - miguel 於 2004/01/20 09:08:51begin if ADOTable1.FieldByName('W1').AsInteger < 0 then begin DBGrid1.Canvan.Font.Color := clRed; end; DefaultDrawColumnCell(Rect, DataCol, Column, State); end; |
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
miguel您好
不知道您不了解的地方在哪裡
我再po完整的example給您 以下是您要的結果
BDE->Table->DataSource->DBGride
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState); begin if field is TIntegerField then begin if field.Value<0 then begin DBGrid1.canvas.Font.Color:=clRed; DBGrid1.DefaultDrawDataCell(Rect,field,State); end; end; if (DbGrid1.DataSource.DataSet.RecNo mod 2)=0 then begin DBGrid1.Canvas.Brush.Color:=clGreen; DBGrid1.Canvas.MoveTo(Rect.Left,Rect.Top); DBGrid1.Canvas.LineTo(Rect.Right,Rect.Top); end; end; |
miguel
一般會員 發表:26 回覆:20 積分:9 註冊:2002-03-30 發送簡訊給我 |
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |