//Столбец Grid, куда помещаем рисунок, связан (Bind Visually) с полем type1 (текстовый тип с идентификацией данных: advice, chemistry, blood...) основной таблицы fdata
if (Column.Index=1) then
begin
Grid1.ColumnByIndex(1).Width:=24; //Иначе картинка 16х16 сжимается?
//картинки подгружаются из BLOB-полей другой таблицы fileimages по совпадению полей type1
DataModule3.FDQuery4.Open('select * from fileimages where type1='+QuotedStr(Value.ToString));
img1.CopyFrom(DataModule3.FDQuery4.CreateBlobStream(DataModule3.FDQuery4.FieldByName('img'), bmRead), 0);
vImage.Bitmap.LoadFromStream(img1);
Canvas.DrawBitmap(vImage.Bitmap, vImage.Bitmap.Bounds, Bounds, 1);
Вопрос
bfarid
Подскажите, пожалуйста, решение проблем при вставке картинки из blob-поля в grid (в программе с Vcl все делал EhLib):
1. Картинка 16х16 сжимается (см рисунок) и приходится добавлять костыль Grid1.ColumnByIndex(1).Width:=24 (если 16, то все равно картинка сужена).
2. Если картинка с прозрачным фоном, то виден текст из поля базы данных (видимо нужно вначале как-то залить ячейку).
------------------
procedure TPntdata.Grid1DrawColumnCell(Sender: TObject; const Canvas: TCanvas;
const Column: TColumn; const Bounds: TRectF; const Row: Integer;
const Value: TValue; const State: TGridDrawStates);
var
img1: TMemoryStream;
vImage: Timage;
begin
//Столбец Grid, куда помещаем рисунок, связан (Bind Visually) с полем type1 (текстовый тип с идентификацией данных: advice, chemistry, blood...) основной таблицы fdata
if (Column.Index=1) then
begin
Grid1.ColumnByIndex(1).Width:=24; //Иначе картинка 16х16 сжимается?
img1:=TMemoryStream.Create;
vImage := TImage.Create(nil);
//картинки подгружаются из BLOB-полей другой таблицы fileimages по совпадению полей type1
DataModule3.FDQuery4.Open('select * from fileimages where type1='+QuotedStr(Value.ToString));
img1.CopyFrom(DataModule3.FDQuery4.CreateBlobStream(DataModule3.FDQuery4.FieldByName('img'), bmRead), 0);
vImage.Bitmap.LoadFromStream(img1);
Canvas.DrawBitmap(vImage.Bitmap, vImage.Bitmap.Bounds, Bounds, 1);
img1:=nil;
vImage:=nil;
end;
Ссылка на комментарий
1 ответ на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.