Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.28;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.007 c
14-90662
Polevi
2002-01-15 17:46
2002.02.28
Civilization 3


3-90497
HiFiBear
2002-02-01 10:28
2002.02.28
Проьлема с библиотеками ado


1-90559
MystiX
2002-02-11 18:47
2002.02.28
Help!!!


1-90592
ЕвгенийА
2002-02-12 15:54
2002.02.28
Разрешение


4-90707
DNT
2001-12-30 13:37
2002.02.28
Hook