PDA

View Full Version : عكس در خانه هاي stringgrid



beginner63
دوشنبه 30 اردیبهشت 1387, 13:09 عصر
سلام. ميخوام در بعضي از خانه هاي stringgrid به جاي متن، عكس نمايش بدم. لطفا كمك كنيد
تشكر

beginner63
سه شنبه 31 اردیبهشت 1387, 11:12 صبح
up ..................
لطفا راهنمايي كنيد. رنگي كردن رو ميتونم اما نميدونم چطور عكس قرار بدم
تشكر

_alish_
سه شنبه 31 اردیبهشت 1387, 14:12 عصر
//--------- قراردادن تصوير در سلول ها با مقايسه =CompareStr
Function TfrmCommon.UI_DrawImagTickInGrid(Grid : TStringGrid; ACol,SCol,
ARow: Integer; Rect: TRect; State: TGridDrawState;IdxImage:Integer;CompareStr:String= ''):Boolean;
var
v_bmp_Image : tBitmap;
v_int_X, v_int_Y : Integer;
begin
if ARow =0 then exit;
if (ACol=SCol) then
//مقايسه ستون مورد نظر جهت رسم تصوير
begin
Grid.Canvas.FillRect(Rect);
v_bmp_Image := tBitmap.Create;
v_int_X := 0;
v_int_Y := 0;
try
if (Grid.Cells[ACol,ARow]<>'') And (Grid.Cells[ACol,ARow]=CompareStr) then
//اگر سلول مورد نظر داراي مقدار بعنوان تاييد رسم داشت
begin
//تصوير مورد نظر را از درون TImageList با ايندكس ارسالي مي خواند
DML.imgList.GetBitmap(IdxImage,v_bmp_Image);
v_int_X := ((Rect.Right - Rect.Left) div 2) -
(v_bmp_Image.Width div 2);
v_int_Y := ((Rect.Bottom - Rect.Top) div 2) -
(v_bmp_Image.Height div 2);
Result := True;
end
else
begin
v_bmp_Image := Nil;
Result := False;
end;
Grid.Canvas.draw(Rect.Left + v_int_X, Rect.Top + v_int_Y, v_bmp_Image);
finally
v_bmp_Image.Free;
end;
end
end;

فراخواني از درون OnDrawCell StringGrid بدين صورت
frmCommon.UI_DrawImagInGrid(sgrdInqGoods,ACol,_G1[10],ARow,Rect,State,0);

beginner63
سه شنبه 31 اردیبهشت 1387, 15:19 عصر
خطاي زمان كامپايل:
-متد GetBitmap رو براي imagelist غير مجاز ميدونه
-شناسه _G1 رو هم نميشناسه