請教各位程式高手(達人)一個關於DBGrid的問題 |
答題得分者是:supman
|
MidasFan
一般會員 發表:41 回覆:22 積分:12 註冊:2004-06-03 發送簡訊給我 |
各位高手,程式界的賢達,業界的翹楚你們好:
一般在DBGrid中都會用藍色顯示你目前是點選(或者是用TAB鍵在移動時顯示藍色)哪一個Column但是我有一個DBGrid加上了以下的程式碼之後藍色顯示卻不見了,請問各位高手是怎麼回事,因為沒有顏色顯示目前是再哪一個Column對使用者來說很不方便 謝謝K.TOP的眾高手 有你們世界變的更美好
程式碼如下:
procedure TfmCIC01000.InfoDBGrid2DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
inherited; //訂購明細--綠色表示有未交數量
InfoDBGrid2.Canvas.Font.Color := clBlue;
if (Column.Index >=6) and (Column.Index <=7) then
InfoDBGrid2.Canvas.Brush.Color := clSilver
else
InfoDBGrid2.Canvas.Brush.Color := clwindow; if cdsDetailODD08.AsInteger > 0 then //ODD08未交數量
InfoDBGrid2.Canvas.Font.Color := clGreen; InfoDBGrid2.Canvas.FillRect(Rect);
InfoDBGrid2.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
|
supman
尊榮會員 發表:29 回覆:770 積分:924 註冊:2002-04-22 發送簡訊給我 |
您好:
您少寫了顯示被選取的那一行,如下面紅色所示:
procedure TForm1.infoDbgrid2DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin inherited; //訂購明細--綠色表示有未交數量 if (gdSelected in State) then begin InfoDBGrid2.Canvas.Font.Color:=clWhite; InfoDBGrid2.Canvas.Brush.Color:=clBlue; end else begin InfoDBGrid2.Canvas.Font.Color := clBlue; if (Column.Index >=6) and (Column.Index <=7) then InfoDBGrid2.Canvas.Brush.Color := clSilver else InfoDBGrid2.Canvas.Brush.Color := clwindow; if cdsDetailODD08.AsInteger > 0 then //ODD08未交數量 InfoDBGrid2.Canvas.Font.Color := clGreen; end; InfoDBGrid2.Canvas.FillRect(Rect); InfoDBGrid2.DefaultDrawColumnCell(Rect,DataCol,Column,State); end; |
MidasFan
一般會員 發表:41 回覆:22 積分:12 註冊:2004-06-03 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |