Привет! помогите разобраться пожалуйста.
Долго ломал голову как вставить изображение в поле компонента DBGrid, в итоге у меня получился ледующий код:
(Реализовал через событие DrawDataCell компонента DBGrid с именем EventDBGrid)
if (Length(Field.AsString)<>0) then
begin
with EventDBGrid.Canvas do
begin
MainDMod.TempADOQuery.Active:=false;
MainDMod.TempADOQuery.SQL.Text:='select * from PeoplTb where ID = '+Field.AsString;
MainDMod.TempADOQuery.Active:=true;
if MainDMod.TempADOQuery.RecordCount<> 0 then
begin
GraficStream := TMemoryStream.Create;
if FileExists('c:\111.bmp') then DeleteFile('c:\111.bmp');
(MainDMod.TempADOQuery.FieldByName('Foto') as TBlobField).SaveToFile('c:\111.bmp');// .SaveToStream(GraficStream);
try
image2.Picture.LoadFromFile('c:\111.bmp');
image2.Height:=Rect.Bottom-Rect.Top;
image2.Width:=Rect.Right-Rect.Left;
image2.Stretch:=true;
image2.Proportional:=true;
Assign(image2.Canvas);
Draw(Rect.Left, Rect.Top, Image2.Picture.Graphic);
except
ShowMessage('1');
end;
GraficStream.Free;
end;
end;
end;
end;
end; Но возникает проблема, изображение никак не отображается в поле грида. Подскажите где загвоздка? Может нужен другой метод вместо Draw(Rect.Left, Rect.Top, Image2.Picture.Graphic)?
Добавлено (06.04.11, 20:45)
---------------------------------------------
разобрался кому интересното работать надо через метод:
StretchDraw(Rect,Image2.Picture.Graphic);
CopyMode := cmSrcCopy;
А ассигн вообще убрать.