![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Таблица отображается в dbgrid. Вот код 2 кнопок. Не грузит изображения. Уже по всякому пробывал надоело мучиться с ним. Может поможет кто?
![]() Код:
procedure TForm10.sButton4Click(Sender: TObject); var Blob:TMemoryStream; begin try if OpenPictureDialog1.Execute then begin ADOQuery1.Edit; TBLOBField(ADOQuery1.FieldByName('Фото')).LoadFromFile(OpenPictureDialog1.FileName); ADOQuery1.Post; ADOQuery1.Refresh; end; except on e:Exception do end; end; procedure TForm10.sButton5Click(Sender: TObject); var jpg:TJPEGImage; Blob:TMemoryStream; bmp:TBitmap; begin try bmp:=TBitmap.Create; jpg:=TJPEGImage.Create; ADOQuery1.First; Blob:=TADOBlobStream.Create(TBlobField(ADOQuery1.FieldByName('Фото')),bmRead); jpg.LoadFromStream(Blob); DBImage1.Picture.Assign(jpg); ADOQuery1.Post; ADOQuery1.Refresh; jpg.Free; Blob.Free; bmp.Free; except on e:Exception do begin jpg.Free; Blob.Free; bmp.Free; end; end; end; |
#2
|
||||
|
||||
![]() Не уверен, что вообще у вас получится отобразить jpg через DBImage1. Методы для отображения JPG есть только у TImage. Вот в него и отображайте из базы текущее значение поля примерно так:
Код:
procedure TForm32.ADOTable1AfterPost(DataSet: TDataSet); var Jpg: TJPEGImage; begin if DataSet['Picture'] = null then Exit; Jpg := TJpegImage.Create; Jpg.LoadFromStream(TADOBlobStream.Create(TBlobField(ADOTable1.FieldByName('Picture')), bmRead)); Image1.Picture.Bitmap.Assign(Jpg); Jpg.Free; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
Вовайн (12.03.2015)
|
#3
|
|||
|
|||
![]() Цитата:
|
#4
|
||||
|
||||
![]() Вот пример из DRKB для загрузки\выгрузки блобом *.jpg, только предварительно напихайте в табличку несколько картинок и потом пощёлкайте мышой по записям
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Вовайн (12.03.2015)
|
#5
|
|||
|
|||
![]() Цитата:
![]() А не работает, спасибо) Последний раз редактировалось Вовайн, 12.03.2015 в 19:21. |
#6
|
||||
|
||||
![]() Тогда вот образец компилянта под D7, у меня оно работает, а у вас?
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Вовайн (13.03.2015)
|
#7
|
|||
|
|||
![]() Цитата:
Тут изменял. Что то не так может? Код:
ADOTable1.ConnectionString:= 'Provider=Microsoft.ACE.OLEDB.12.0;Data Source=' + ExtractFileDir(ParamSTR(0)) + '\База.accdb;' + 'Mode=ReadWrite;Persist Security Info=false'; ADOTable1.Active:= true; |
#8
|
|||
|
|||
![]() Могу свой проект скинуть, но у меня в xe7 и с alpha skin.
|
#9
|
||||
|
||||
![]() Да у вас похоже неправильно текущий акцессовский провайдер задан - посмотрите что система использует, его и вписывайте
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Вовайн (13.03.2015)
|
#10
|
|||
|
|||
![]() Цитата:
|
#11
|
||||
|
||||
![]() Здесь простая система - берётся коннектстрока от datasourse и вместо статического пути к базе задаётся динамический с помощью ParamSTR(0), это чтоб папку таскать можно было в разные места на машинке без ошибок при запуске, проверьте ещё раз путь к accdb-файлу
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Вовайн (13.03.2015)
|
#12
|
|||
|
|||
![]() Цитата:
Последний раз редактировалось Вовайн, 13.03.2015 в 19:49. |
#13
|
|||
|
|||
![]() Совсем другим способом получилось)
|