線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1032
推到 Plurk!
推到 Facebook!

请教DBGridEh1高深问题?

缺席
sl@cableplus.com.cn
高階會員


發表:168
回覆:359
積分:130
註冊:2004-03-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-18 14:04:55 IP:218.80.xxx.xxx 未訂閱
字段N是BIT型的,数据显示在DBGridEh1中,当N为1的时候我想用个小图标来表示,请教大大应该怎么解决
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-18 21:54:34 IP:211.20.xxx.xxx 未訂閱
sl@cableplus.com.cn 你好
1.請先放兩個Image並載入小圖示,一個代表0,另一個代表1
2.在DBGrid1.OnDrawColumnCell事件中撰寫下列程式碼
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
Var
  Re : TRect ;
begin
  If Column.FieldName = 'N' Then Begin
    Re:=TRect(0,0,Image1.Width,Image1.Height);
    Case Column.Field.Value Of
      0:DBGrid1.Canvas.CopyRect(Rect,Image1.Canvas,Re) ;
      Else
        DBGrid1.Canvas.CopyRect(Rect,Image2.Canvas,Re) ;
    End;
  End;
End;
發表人 - chance36 於 2004/05/18 22:02:57
sl@cableplus.com.cn
高階會員


發表:168
回覆:359
積分:130
註冊:2004-03-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-19 09:12:36 IP:218.80.xxx.xxx 未訂閱
if QryMaster.FieldByName('HadAttach').AsBoolean then begin Re := TRect(0, 0, Image2.Width, Image2.Height); case Column.Field.Value of 0: DBGridEh1.Canvas.CopyRect(Rect, Image2.Canvas, Re); else DBGridEh1.Canvas.CopyRect(Rect, Image1.Canvas, Re); end; end; 根据大大提示改动为如上代码,但是运行到 Re := TRect(0, 0, Image2.Width, Image2.Height);会报错
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-19 12:31:16 IP:203.204.xxx.xxx 未訂閱
引言: 根据大大提示改动为如上代码,但是运行到 Re := TRect(0, 0, Image2.Width, Image2.Height);会报错
sl@cableplus.com.cn 你好 Re := Rect(0, 0, Image2.Width, Image2.Height);// 多了一個'T',手工打造,難免有誤,敬請見諒!
sl@cableplus.com.cn
高階會員


發表:168
回覆:359
積分:130
註冊:2004-03-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-19 13:29:32 IP:218.80.xxx.xxx 未訂閱
我Re := Rect(0, 0, Image2.Width, Image2.Height);// 改成Re := Rec(0, 0, Image2.Width, Image2.Height);// 还是说REC没有定义,是不是要在USES里也定义一下?
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-05-19 15:43:25 IP:211.20.xxx.xxx 未訂閱
這是正確的 Re := Rect(0, 0, Image2.Width, Image2.Height); // 多了一個'T',是前面的'T'不是後面的't' Re := TRect(0, 0, Image2.Width, Image2.Height); // 這是錯的
sl@cableplus.com.cn
高階會員


發表:168
回覆:359
積分:130
註冊:2004-03-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-05-19 16:39:58 IP:218.80.xxx.xxx 未訂閱
Re := Rect(0, 0, Image2.Width, Image2.Height);这句话还是有错,说 miss operator or semicolon 而且我Image2也点不出Width和Height的属性 请教是什么原因?
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-05-19 17:44:59 IP:211.20.xxx.xxx 未訂閱
引言: Re := Rect(0, 0, Image2.Width, Image2.Height);这句话还是有错,说 miss operator or semicolon 而且我Image2也点不出Width和Height的属性 请教是什么原因?
sl@cableplus.com.cn 你好 應該是沒有Image2這個物件(之前提示說要放兩個TImage的物件,那第二個的名稱預設即為Image2),或者直接給值亦可 Re := Rect(0, 0, 15, 15);//16x16的小圖示
系統時間:2024-05-17 19:04:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!