Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 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.




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.28;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.02 c
7-90677           PEC2                  2001-11-26 09:05  2002.02.28  
Подскажите


1-90577           Павел2                2002-02-12 10:24  2002.02.28  
загрузка DLL с файл сервера


1-90555           ЕвгенийА              2002-02-11 11:45  2002.02.28  
О MediaPlayer........


3-90524           RAVEN                 2002-02-04 13:08  2002.02.28  
Отмена удаления записи


3-90457           kserg@ukr.net         2002-02-01 10:08  2002.02.28  
Как переименовать таблицу SQL-командой?