beginner63
دوشنبه 30 اردیبهشت 1387, 14:09 عصر
سلام. ميخوام در بعضي از خانه هاي stringgrid به جاي متن، عكس نمايش بدم. لطفا كمك كنيد
تشكر
beginner63
سه شنبه 31 اردیبهشت 1387, 12:12 عصر
up ..................
لطفا راهنمايي كنيد. رنگي كردن رو ميتونم اما نميدونم چطور عكس قرار بدم
تشكر
_alish_
سه شنبه 31 اردیبهشت 1387, 15: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, 16:19 عصر
خطاي زمان كامپايل:
-متد GetBitmap رو براي imagelist غير مجاز ميدونه
-شناسه _G1 رو هم نميشناسه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.