Новые сообщения · Правила  
Страница 1 из 11
Модератор форума: Berestovskiy 
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Delphi » Картинка в DBGrid
Картинка в DBGrid
Привет! помогите разобраться пожалуйста.
Долго ломал голову как вставить изображение в поле компонента 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;
А ассигн вообще убрать.

1 | Автор: KOTY21 | 2011-04-06, 20:45   |  Репутация: [ + 0 ]
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Delphi » Картинка в DBGrid
Страница 1 из 11
Поиск: