Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.45 MB
Время: 0.004 c
14-90635
Lamok(real)
2002-01-09 13:36
2002.02.28
Windows XP


3-90477
VladP
2002-01-31 11:20
2002.02.28
Неожиданный key violation в автоинк поле


3-90465
MVova
2002-01-31 16:55
2002.02.28
Как отключить конект???


3-90523
Alex_C
2002-02-05 14:06
2002.02.28
Как проверить существует ли столбец в БД?


1-90553
Pete
2002-02-11 15:29
2002.02.28
Нужен компонент....





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский