DBGrid 能實現這樣的效果嗎﹖ |
尚未結案
|
lvluyang
一般會員 發表:18 回覆:9 積分:5 註冊:2004-09-28 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 將以下程式寫在DBGrid元件的OnDrawColumnCell重繪事件中試試﹕
begin if DBGrid1.Columns[欄位索引].Field.AsInteger <= 20 then begin DBGrid1.Columns[欄位索引]Font.Color := 相同于DBGrid1底色的顏色值; DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end; end;========================= 大病初愈﹐休養調整中... ========================= 發表人 - cashxin2002 於 2004/10/16 10:42:38
------
忻晟 |
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
不使用到修改資料。
可以在 DBGRID 的 ONDrawColumnCel 直接替代原來顯示文字 procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if SameText(Column.FieldName,'size') then
begin
DBGrid1.Canvas.FillRect(Rect); if Column.Field.asInteger>20 then
begin
DBGrid1.Canvas.TextRect(Rect,Rect.Left 2,Rect.TOP 2,Column.Field.asString);
end;
end;
end; 不好意思!沒有看到 cashxin2002 版主的發表 發表人 - wameng 於 2004/10/16 10:35:54
|
yenhorng
中階會員 發表:12 回覆:82 積分:94 註冊:2002-06-18 發送簡訊給我 |
|
likush
高階會員 發表:5 回覆:235 積分:103 註冊:2002-10-08 發送簡訊給我 |
你好 除了cashxin2002兄的建議,另提供種建議
設Filtered := True 然後在
procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept := Table1.FieldByName(field1').AsInteger > 100;
end;
如此可直接過濾資料,僅顯示你要顯示的資料 =========================
讀萬卷書~不如來K.TOP走一遭
=========================
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |