اصغر (پآچ)
سه شنبه 08 بهمن 1387, 00:48 صبح
سلام دوستان
من چند وقتي دنبال اين بودم كه بجاي نمايش اطلاعات در dbgrid از عكس استفاده كنم (مثل نمايش عكس كنار صندوق ورودي توي ايميل باكس كه نامه هاي جديد، خوانده شده رو با تصوير نشون ميده) بعد از جستجوي اينترنت به اين كد رسيدم كه براي استفاده دوستان توي سايت قرار ميدم
نحوه قرار دادن عكس در DBGrid:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
bitmap : TBitmap;
fixRect : TRect;
bmpWidth : integer;
imgIndex : integer;begin
fixRect := Rect;
// customizing the 'deskripsi ' field
if column.Field =ADOTable1deskripsi then
begin
if adotable1kode_barang.Value = '002' then//002 is value of my kode_barang field with a string type
imgIndex := 0
else if adotable1kode_barang.Value = '004' then
imgIndex := 1
else
imgIndex := 2;
bitmap := TBitmap.Create;
try
ImageList1.GetBitmap(imgIndex,bitmap);
//Fix the bitmap dimensions
bmpWidth := (Rect.Bottom - Rect.Top);
fixRect.Right := Rect.Left + bmpWidth;
//draw the bitmap
DBGridEasy1.Canvas.StretchDraw(fixRect,bitmap);
finally
bitmap.Free;
end;
// reset the output rectangle,
// add space for the graphics
fixRect := Rect;
fixRect.Left := fixRect.Left + bmpWidth;
end;
//draw default text (fixed position)
DBGrideasy1.DefaultDrawColumnCell(
fixRect,
DataCol,
Column,
State);
end;
لازم به ذكره كه عكس هايي رو كه قراره توي گريد نمايش داده بشه رو توسط يه TImageList از تب Win32 بايد توي برنامه لود شده باشند.
موفق و مويد باشيد
من چند وقتي دنبال اين بودم كه بجاي نمايش اطلاعات در dbgrid از عكس استفاده كنم (مثل نمايش عكس كنار صندوق ورودي توي ايميل باكس كه نامه هاي جديد، خوانده شده رو با تصوير نشون ميده) بعد از جستجوي اينترنت به اين كد رسيدم كه براي استفاده دوستان توي سايت قرار ميدم
نحوه قرار دادن عكس در DBGrid:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
bitmap : TBitmap;
fixRect : TRect;
bmpWidth : integer;
imgIndex : integer;begin
fixRect := Rect;
// customizing the 'deskripsi ' field
if column.Field =ADOTable1deskripsi then
begin
if adotable1kode_barang.Value = '002' then//002 is value of my kode_barang field with a string type
imgIndex := 0
else if adotable1kode_barang.Value = '004' then
imgIndex := 1
else
imgIndex := 2;
bitmap := TBitmap.Create;
try
ImageList1.GetBitmap(imgIndex,bitmap);
//Fix the bitmap dimensions
bmpWidth := (Rect.Bottom - Rect.Top);
fixRect.Right := Rect.Left + bmpWidth;
//draw the bitmap
DBGridEasy1.Canvas.StretchDraw(fixRect,bitmap);
finally
bitmap.Free;
end;
// reset the output rectangle,
// add space for the graphics
fixRect := Rect;
fixRect.Left := fixRect.Left + bmpWidth;
end;
//draw default text (fixed position)
DBGrideasy1.DefaultDrawColumnCell(
fixRect,
DataCol,
Column,
State);
end;
لازم به ذكره كه عكس هايي رو كه قراره توي گريد نمايش داده بشه رو توسط يه TImageList از تب Win32 بايد توي برنامه لود شده باشند.
موفق و مويد باشيد