Форум: "Базы";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];
ВнизПроблемма с извлечением картинки из базы данныз Paradox Найти похожие ветки
← →
Rule (2003-10-05 21:41) [0]Задача: необходимо в базу данных Парадокс поместить jpeg овский рисунок, и при скроллинке в программе должен этот рисунок отображаться в определенном месте (не важно в каком)
Способ решения: для хранения рисунков создано поле двоичный блоб, и в событии таблицы (для работы используется обычный компонент ттейбл и бде)афтерскролл читается содержимое поля и помещается в стандартный компонент типа TImage, так как стандартный ДБИмаге не понимает джпегов, ну так вот а для помещения картинки просто в это пле записывается из выбранного файла содержимое.
возникшие трудности: вопервых, для записи из файла в поле использовал команду такую
DM.FirmBlock.loadfromfile(opendialog.filename);
где
dm - форма, сдержащаю все компоненты базы данных
Firm - название таблицы
Block - название вот этого самого поля
я не ощибся между фирм и блок нет точки этот объект как поле инициализируется.
так вот при записи содержимое файла записывается в первую запист и только, может я не так использую этот объект, если нет то что мне делать
и вторая трудность это я не могу с мемори стрим загрузить в компонкнту Image картинку, объясняю почему
использую такую запись
var
ms: TMemoryStream
begin
ms:=TMemoryStrem.create;
DM.FirmBlock.SaveToStream(ms);
MainForm.Image1.Picture.Graphic.LoadFromStrem(ms);
ms.free;
вот так но оно не работате а выдает ошибку так как надо загружать не из графика а из пикчер допустим вот так работает
MainForm.Image1.Picture.LoadFromFile("название там какогонибудь файла");
но в свойстве Пикчер нет метода загрузки из потока, как мне быть?????????????????????????????????????????????????????????
← →
Rulee (2003-10-06 09:47) [1]Неужели никто не знает, помогите мне пожалуйста
← →
Term (2003-10-06 10:31) [2]попробуй так:
var
Btm:TBitmap;
begin
Btm:=TBitmap.Create;
Btn.Assign(TableBitmap);
Image.Picture.Bitmap.Assign(Btn);
Btn.Free;
end;
и потоки не нужны
← →
Term (2003-10-06 10:34) [3]в Image изображение кажется в любом случае приводиться к bmp, хотя могу и ошибаться
← →
Rule (2003-10-06 10:46) [4]ДА дело то не в потоках, а в том что при обращении к полю как к отдельному объекту, тоесть к полю как к полю TBLOB, FORMNAME.TABLEFIELDBLOCK.value - выдает только первое значение таблицы, вот в чем вопрос ...
← →
Term (2003-10-06 11:00) [5]а ты там
append...post
не забыл, может она у тебя каждый раз текущую запись редактирует, а нужно добавлять
← →
Rule (2003-10-06 22:26) [6]да не забыл конечно, только я использую команду едит ... пост потомучто картинкка добавляется к уже существующим записям, логично ведь, сначала создается запись а потом добавляется ккартинка, а не наоборот, картинка без записи это немного старнновато-недопустимо в отличии от записи без картинки (по логике вещей моей БД)
← →
Shurik (2003-10-06 23:42) [7]Вот ни чего не понял :)
Если нужно сохранить, то (поле as TBlobField).LoadFromStream(...), есть пример в хелпах. И далее по тексту. И наоборот если нужно сохранить. Есть кульная библия FastLib (или FastDib, но абсолютно бесплатная (работает и с пресловутыми jpg) в разделе DelphiGFX), которая позволит и загрузить и сохранить в поток, и перекинуть на канву Image, ... устал одним пальцем набирать:)
← →
Rule (2003-10-07 00:13) [8]да вопрос не в том а вопрос в другом, почему при обращении к записи таким образом берется только первое значение и почему
нельзя из потока закрузить прямо в компоненту имейдж как из файла (в конце концов это же тоже поток) ...
← →
Shurik (2003-10-07 00:32) [9]Вот ни чего не понял (опять), что есть "первое значение" :)
Возможно ты имеешь ввиду то, что, image не обновляется при прогоне строк? Поставь UpDate на AfterScroll Tabla. И еще, если у тебя TBlobField то не хрена не выйдет (нужен TGraphicField). И что такое поток...
← →
Term (2003-10-07 09:04) [10]
> да не забыл конечно, только я использую команду едит ...
> пост потомучто картинкка добавляется к уже существующим
> записям, логично ведь, сначала создается запись а потом
> добавляется ккартинка, а не наоборот, картинка без записи
> это немного старнновато-недопустимо в отличии от записи
> без картинки (по логике вещей моей БД)
приведи код а то я чтото не пойму что ты там замутил
← →
TuZ (2003-10-07 09:29) [11]Какие-то сложности непонятные...
У меня работало (и еще работает)все с стандартными компонентами... И кода там немного...
Мой совет (т.к. исхдоники на работе): TDBImage, DataSet - и немного кода (строчек 10-15). Все...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.011 c