Delphi. TRichView. Как добавить изображение и сохранить его в базе в нормальном HTML формате?

В прошлом посте мы сохраняли в базу контент в HTML формате, но проблема была в том, что программа c TRichView копировала изображение в некую директорию и прописывала пути относительно неё. Оно и записывалось и читалось корректно, но в пределах одного компьютера. Если же, скажем, нам нужно прочитать контент, в котором картинка на некотором удаленном сервере, а пусть даже и на локальном, то такой вариант бы не прокатил. Короче, хотелось сделать по нормальному, по человечески, как это работает в традиционном WEB.

То есть, если картинка, то в базе она должна записываться как

а не просто

Как же этого добиться? Пару дней покопавшись с документацией TRichView я пришел к такому вот решению.  Continue reading

Delphi. TRichView. Как добавить изображение и сохранить его в базе ?

3

Разрабатываю небольшой компонент – текстовый редактор DBTextEditor, для своей программы . В базе данные будут храниться в HTML формате в обычном текстовом поле. У меня MySQL, я использую TEXT поле. Изображения будут храниться рядом с EXE – в отдельной папке Pics, а в базе будут только ссылки на изображение – что избавит от раздутия таблиц при использовании BLOB полей. Компонент разрабатываю с помощью фрэйма. То есть, доступ ко всем полям и методам будет примерно таким

Выглядит фрэйм примерно таким образом

1

Continue reading

Delphi. TRichView. Как вставить картинку и программно изменить её размеры в документе?

На примере SrichViewEdit (ScaleRichViewEdit)

 

Delphi.TRichView. Как сохранить контрол в поток данных и прочитать его оттуда?

Рассмотрим на примере TWindowsMediaPlayer. Тут всё достаточно просто. Сохранять будем в поток, в дальнейшем этот поток можно передать в Blobstream и далее в базу,

Для корректного чтения из потока нужно выполнить процедуру RegisterClass, чтобы TRichView понимал что это такое.

В глобальных переменных объявим

В OnCreate

Создание и сохранение контрола в поток

Чтение из потока и загрузка в документ

 

Delphi.TrichView. Вставка HTML текста и отображение его в браузере

Мне нужно научиться вставлять HTML текст в TRichViewEdit, так чтобы потом он корректно отображался в браузере. Подробную инструкцию о том как этого добиться, я увидел здесь.

24

В сущности, нужно следующее Continue reading

Delphi.TRichView. Работа с анимированными Gif изображениями

С “полпинка” не завелось, пришлось лезть в документацию TRichView. Если воспользоваться TRichViewActions по добавлению картинок, то gif формат там присутствует, но если загрузить анимированное gif изображение, то оно не движется.

21

Мне пришлось решать 2 задачи Continue reading

Delphi.TRichView. Таблицы. Работа с колонками и рядами

Работу с колонками и рядами я “запрятал” в контекстное меню следующим образом…

19

 

При выделении таблицы или её части и нажатии на правую клавишу мыши выпадает вот такое меню, позволяющее работать с колонками и рядами таблицы.  Continue reading

Delphi. TRichView. TRichViewActions. Добавление таблицы. Изменение её свойств

В данном посте мы научимся вставлять таблицы, используя TRichViewActions, редактировать их, добавлять колонки, ряды и удалять их. Будет представлен подход, совмещающий дизайнтайм и рантайм.

Я уже писал про добавление таблиц в TRichViewEditor, там был пример вставки таблицы программно, с заданием различных атрибутов, как то ширина границы и так далее. Немного поработав с таблицами в TRichView, я сделал вывод, что лучше всего совмещать программный способ и дизайнтайм.

Добавление таблицы

Добавим кнопку Table

13

в наш пример и напишем следующий код… Continue reading

Delphi. TRichView. Идентификаторы итемов

Если, например, выделить таблицу и написать вот такой код,

то получим следующий результат

11

А всё дело в том, что каждый итем в TrichView обладает своим идентификатором. Код, который был написан выше позволяет определить этот идентификатор и сказать, например, таблица это или нет.

Приведу  информацию с официального сайта. Continue reading

Delphi. TRichView. Пример вставки таблицы 5*5

В TRichView, таблицы достаточно сложный объект. Поэтому пару тройку постов наверное сделаю, для того, чтобы разобраться как там всё устроено. Пока что научился вставлять таблицу таким образом.

8

Continue reading