dbgrideh1的checkbox问题? |
缺席
|
sl@cableplus.com.cn
高階會員 發表:168 回覆:359 積分:130 註冊:2004-03-26 發送簡訊給我 |
我的代码如下:
我的字段selected是BIT型,下面这句话应该怎么判断:
Field.FieldName = QryMaster.FieldByName('Selected') procedure TFrmOAMail.DBGridEh1DrawDataCell(Sender: TObject;
const Rect: TRect; Field: TField; State: TGridDrawState);
begin
inherited;
if (Field.FieldName = QryMaster.FieldByName('Selected')) then
begin
if TableGridDataCheckBox.AsBoolean then
DBGridEh1.Canvas.Draw(Rect.Left, Rect.Top, ImageTrue.Picture.Bitmap)
else
DBGrid1.Canvas.Draw(Rect.Left, Rect.Top, ImageFalse.Picture.Bitmap)
{ DBGrid1.Canvas.StretchDraw(Rect, ImageFalse.Picture.Bitmap); }
end;
end;
|
sl@cableplus.com.cn
高階會員 發表:168 回覆:359 積分:130 註冊:2004-03-26 發送簡訊給我 |
|
sl@cableplus.com.cn
高階會員 發表:168 回覆:359 積分:130 註冊:2004-03-26 發送簡訊給我 |
ImageTrue和ImageFalse是TImage已经可以了,但是运行后还是显示Checkbox并没出现ImageTrue中的图片,请问哪里还要设置,代码如下:
if (Field.FieldName = QryMaster.FieldByName('Selected').AsString) then
begin
if QryMaster.FieldByName('Selected').AsBoolean then
DBGridEh1.Canvas.Draw(Rect.Left, Rect.Top, TrueImage.Picture.Bitmap)
else
DBGridEh1.Canvas.Draw(Rect.Left, Rect.Top, FalseImage.Picture.Bitmap)
|
Diviner
初階會員 發表:36 回覆:112 積分:34 註冊:2002-03-13 發送簡訊給我 |
引言: ImageTrue和ImageFalse是TImage已经可以了,但是运行后还是显示Checkbox并没出现ImageTrue中的图片,请问哪里还要设置,代码如下:下次請用 code tag 把你的代碼圍住以保持原來的 Indentation, 否則沒人看得明白你的代碼, 回答的人便少了。 至於你的問題, 大概是 TrueImage/FalseImage 沒有把圖 Load 出來吧。 -- 小卜子if (Field.FieldName = QryMaster.FieldByName('Selected').AsString) then begin if QryMaster.FieldByName('Selected').AsBoolean then DBGridEh1.Canvas.Draw(Rect.Left, Rect.Top, TrueImage.Picture.Bitmap) else DBGridEh1.Canvas.Draw(Rect.Left, Rect.Top, FalseImage.Picture.Bitmap)
------
-- 小卜子 |
sl@cableplus.com.cn
高階會員 發表:168 回覆:359 積分:130 註冊:2004-03-26 發送簡訊給我 |
|
sl@cableplus.com.cn
高階會員 發表:168 回覆:359 積分:130 註冊:2004-03-26 發送簡訊給我 |
|
sl@cableplus.com.cn
高階會員 發表:168 回覆:359 積分:130 註冊:2004-03-26 發送簡訊給我 |
|
sl@cableplus.com.cn
高階會員 發表:168 回覆:359 積分:130 註冊:2004-03-26 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
sl@cableplus.com.cn
高階會員 發表:168 回覆:359 積分:130 註冊:2004-03-26 發送簡訊給我 |
if (Field.FieldName = QryMaster.FieldByName('Selected').AsString) then begin if QryMaster.FieldByName('Selected').AsBoolean then DBGridEh1.Canvas.Draw(Rect.Left, Rect.Top, TrueImage.Picture.Bitmap) else DBGridEh1.Canvas.Draw(Rect.Left, Rect.Top, FalseImage.Picture.Bitmap)我把if (Field.FieldName = QryMaster.FieldByName('Selected').AsString) then这句去掉还是不显示TrueImage,是何原因? |
sl@cableplus.com.cn
高階會員 發表:168 回覆:359 積分:130 註冊:2004-03-26 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
改成這樣試試:
begin if QryMaster.FieldByName('Selected').AsBoolean then BitBlt(DBGridEh1.Canvas.Handle, Rect.Left, Rect.Top, Rect.Right - Rect.Left, Rect.Bottom - Rect.Top, TrueImage.Canvas.Handle, 0, 0, SRCCOPY) else BitBlt(DBGridEh1.Canvas.Handle, Rect.Left, Rect.Top, Rect.Right - Rect.Left, Rect.Bottom - Rect.Top, FalseImage.Canvas.Handle, 0, 0, SRCCOPY);-- Everything I say is a lie. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |