如何讓bit型態在DBGrid內顯示成打勾記號? |
尚未結案
|
way888
初階會員 發表:32 回覆:76 積分:36 註冊:2005-05-31 發送簡訊給我 |
|
supman
尊榮會員 發表:29 回覆:770 積分:924 註冊:2002-04-22 發送簡訊給我 |
您好:
1.放兩個Image,一個放您想要的打勾圖形,一個放您想要的打X圖形
2.在DBGrid的OnDrawColumnCell事件中寫下:
if (Query.FieldByName('xxx').Boolean) and
(DataCol=0) then//看你的圖要在哪一格
DBGrid1.Canvas.Draw(Rect.Left,Rect.Top,Image1.Picture.Graphic);//打勾
else DBGrid1.Canvas.Draw(Rect.Left,Rect.Top,Image2.Picture.Graphic);//打X
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 在DBGrid元件的OnDrawColumnCell事件中重繪試試﹕
Var Str: String; begin if SameText(Column.FieldName, '欄位名稱') then begin Str := '' if Column.Field.Value = True then Str := 'Y' else if Column.Field.Value = False then Str := 'N'; end; if Str <> '' then DBGrid1.Canvas.TextRect(Rect, Rect.Left+2, Rect.Top+2, Str); end;================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟 |
way888
初階會員 發表:32 回覆:76 積分:36 註冊:2005-05-31 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ True值和False值是從資料表中擷取到的資料﹐如您所述的需要﹐應不是從DBGrid重繪內容解決問題﹐而是從資料集元件處處理﹒
將以下程式碼寫在DBGrid元件的OnDblCheck事件中﹒ begin if DBGrid1.SelectedField.FieldName = 'Bit欄位名稱' then begin ADOTable1.Edit; ADOTable1.FieldByName('Bit欄位名稱').Value := Not (ADOTable1.FieldByName('Bit欄位名稱').Value); ADOTable1.Post; end; end;================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟 |
supman
尊榮會員 發表:29 回覆:770 積分:924 註冊:2002-04-22 發送簡訊給我 |
|
way888
初階會員 發表:32 回覆:76 積分:36 註冊:2005-05-31 發送簡訊給我 |
|
kindle
一般會員 發表:3 回覆:9 積分:2 註冊:2005-06-12 發送簡訊給我 |
|
kindle
一般會員 發表:3 回覆:9 積分:2 註冊:2005-06-12 發送簡訊給我 |
不過我倒是覺得可能這樣會更方便,但對於多個bit型態在DBGIRD內顯示成Y或N如何更簡單?以下我用了兩個bit型態在DBGIRD內顯示成Y或N
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
if DBGrid1.SelectedField.FieldName = 'ky' then
begin
ADOTable1.Edit;
ADOTable1.FieldByName('ky').Value := Not (ADOTable1.FieldByName('ky').Value);
//ADOTable1.FieldByName('xz').Value := Not (ADOTable1.FieldByName('xz').Value);
ADOTable1.Post;
end;
if (DBGrid1.SelectedField.FieldName = 'xz') then
begin
ADOTable1.Edit;
//ADOTable1.FieldByName('ky').Value := Not (ADOTable1.FieldByName('ky').Value);
ADOTable1.FieldByName('xz').Value := Not (ADOTable1.FieldByName('xz').Value);
ADOTable1.Post;
end;
end;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |