Форум: "Основная";
Текущий архив: 2002.02.28;
Скачать: [xml.tar.bz2];
ВнизRichEdit Найти похожие ветки
← →
ProgrammerDelphi (2002-02-12 10:17) [0]Помогите, пожалуйста, разрешить следующую проблему:
Вот у меня имеются две формы. На первой форме frm_main имеются компоненты доступа к
БД MS SQL Server через ADO-соединение. Данные по одному полю хранятся в виде BLOB
(Image-MS SQL). И мне нужно форматированный текст записать туда и читать тоже
форматированный текст. Не получается, только записывается и читается неформатированный
текст. На второй форме frmEdit_Tip расположены компоненты выбора атрибутов шрифта
и форматирования текста. С помощью их на этой форме в окне REdit_Content
простого компонента TRichEdit (не TDBRichEdit) мне удалось сформатировать текст, но
не удаётся записать в таком красивом виде или считать.
=========Кусок кода в кнопке формы frm_main
//Разрешить читать из БД инфо в формате rtf(rich-text format)
frmEdit_Tip.REdit_Content.PlainText:=false;
frmEdit_Tip.REdit_Content.Text:=DataModule1.ADOQuery1.FieldByName("Content").Value;
==========Результат отображения в форме frmEdit_Tip
{\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fnil MS Sans Serif;}{\f1\froman\fcharset2
Symbol;}{\f2\fswiss\fcharset1 MS Sans Serif;}{\f3\fswiss\fcharset204 MS Sans
Serif;}{\f4\fswiss\fcharset1 MS Sans Serif;}}
{\colortbl\red0\green0\blue0;\red255\green0\blue0;\red0\green0\blue255;}
\deflang1033\pard\plain\f2\fs28\cf2\b\i\ul \"cf\"f0\"ee\"e1\"e0
\par \"f4\"ee\"f0\"ec\"e0\"f2\"e0
\par RTF
\par \plain\lang1049\f3\fs16\cf1\b\i \"ef\"f0\"ee\"e2\"e5\"f0\"ea\"e0\plain\f4\fs16
\par }
============кусок кода на второй форме после нажатия кнопки "Запомнить"
begin
spUpdate_Images.Prepared:=false;
//Установка значений входных параметров процедуры
//Разрешить записывать в БД инфо в формате rtf(rich-text format)
REdit_Content.PlainText:=false;
spUpdate_Images.Parameters.ParamByName("@Content").Value:=REdit_Content.Lines.Text;
//Связывание параметров
spUpdate_Images.Prepared:=true;
//Выполнение хранимой процедуры
spUpdate_Images.ExecProc;
//Обновление данных
frmMain.ADOQuery1.Requery;
Close;
end;
=========================================================
Я уже замучился, почитал книги Шумакова, Архангельского. Там никаких секретов и
хитростей с примерами не нашёл. И пытался в help"e Delphi 5 найти примеры и помощь,
фигню получил. Читаю на вашем форуме, и что-то похожее решение наверно есть. Но не
знаю, каким образом извлечь и записать информацию в виде rtf.
Именно какая-то ошибка в фрагменте кода, но я сам не могу найти.
spUpdate_Images.Parameters.ParamByName("@Content").Value:=REdit_Content.Lines.Text;
То есть более правильно надо записать, ну типа REdit_Content.Stream или ...???????
Может быть использовать LoadFromStream?
Заранее буду благодарен за ответы
← →
Gregory (2002-02-13 08:57) [1]Вся беда в том что это компонент может распознать rtf-кую природу данного текста, только при выполнении методов Lines.LoadFromFile и Lines.LoadFromStream, причем в первом случае он опирается на расширение файла, а во втором на значение PlainText (можешь сам посмотреть исходники компонента в Source\Vcl\comctrls.pas). А все другие Linesовые методы, он осуществляет как с обычным текстом ...
Вариант решения: Перед загрузкой сохраняй данные во временный файл, с расширением rtf. Для загрузки используй Lines.LoadFromFile.
С сохранением проблем быть не должно.
← →
TSV (2002-02-13 10:24) [2]В MS SQL Server для текста надо использовать тип text (ntext), а не image.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.02.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c