|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.05.2009, 20:10 | #1 |
Регистрация: 18.05.2009
Сообщений: 4
|
RichEdit проблема с сохранинеием в Turbo Delphi
создал тектовый редактор с помощью RichEdit когда сохраняю текст помимо текста получаю вот такое
{\rtf1\ansi\ansicpg1251\deff0\defla ng1049{\fonttbl{\f0\fnil\fcharset0 Tahoma;}{\f1\fnil Tahoma;}} \viewkind4\uc1\pard\lang1033\f0\fs1 6 gehev gev gev\lang1049\f1 \par } где gehev gev gev это текст ,русский же шрифт вообще не принемает не подскажите в чём пкосяк ?
Всё генальное оказывается элементарным
Последний раз редактировалось Зайцев Александр; 27.05.2009 в 20:12. |
27.05.2009, 22:03 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Зайцев Александр, ну всё нормально. Это RTF формат (можете сохраённый домент открыть прямо в MS Word). В этом формате сохраняются шрифты и оформление текста.
Русский текст там тоже есть, только он выглядит так \'cf\'f0\'e8\'e2\'e5\'f2 А что Вы хотели получить? "Голый" текст, без оформелния? Тогда перед сохранением сделайте Код:
|
27.05.2009, 23:26 | #3 |
Регистрация: 18.05.2009
Сообщений: 4
|
Спасибо огромное помогло теперь 'Голый' текст
Всё генальное оказывается элементарным
|
17.01.2014, 16:46 | #4 |
Регистрация: 30.08.2010
Сообщений: 9
|
Здравствуйте.
Не стал создавать новую тему, т.к проблема схожая. Только у меня текст в окне RichEdit1 превращается в служебную информацию не во время сохранения или чтения из файла, а после команды - перенос по словам, или наоборот. При малом количестве строк, всё нормально, а вот если количество строк превышает 2500, то текст превращается в служебную информацию: {\rtf1\ansi\deff0{\fonttbl{\f0\fnil \fcharset204{\*\fname Courier New;}Courier New CYR;}} и т.д Перенос по словам осуществляю при помощи CheckBox1: // перенос по словам procedure TForm1.CheckBox1Click(Sender: TObject); begin // разрешает перенос по словам if CheckBox1.Checked=True then begin RichEdit1.ScrollBars := ssVertical; RichEdit1.WordWrap := True; end; // запрещает перенос по словам if CheckBox1.Checked=false then begin RichEdit1.ScrollBars := ssBoth; RichEdit1.WordWrap := false; end; end; Пробовал менять свойство PlainText RichEdit1.PlainText := True; Не помогает. Пробовал увеличивать количество символов: SendMessage(RichEdit1.Handle, EM_EXLIMITTEXT, 0, $7FFFFFF0); Тоже не помогает. Подскажите пожалуйста, в чём причина? |
17.01.2014, 17:13 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
PlainText не причем. Так на всякий случай, возможно и поможет
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
17.01.2014, 17:28 | #6 |
Регистрация: 30.08.2010
Сообщений: 9
|
Аватар, спасибо за совет, я исправил текст, но всё равно не помогает:
// перенос по словам procedure TForm1.CheckBox1Click(Sender: TObject); begin // разрешает перенос по словам if CheckBox1.Checked=True then begin RichEdit1.Lines.BeginUpdate; RichEdit1.ScrollBars := ssVertical; RichEdit1.WordWrap := True; RichEdit1.Lines.EndUpdate; end; // запрещает перенос по словам if CheckBox1.Checked=false then begin RichEdit1.Lines.BeginUpdate; RichEdit1.ScrollBars := ssBoth; RichEdit1.WordWrap := false; RichEdit1.Lines.EndUpdate; end; end; |
17.01.2014, 18:36 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Такое поведение подтверждаю. Могу предположить, что WordWrap либо ScrollBars из разряда тех свойств, изменение которых в runtime не предусмотрено, либо коряво реализовано. Костыль - держать два ричэдита с нужными свойствами, один из которых невидим и перетягивать инфу из одного в другой меняя видимость. Пойдет?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
17.01.2014, 19:12 | #8 |
Регистрация: 30.08.2010
Сообщений: 9
|
Я пробовал с параллельным Memo1, т.е.
Текст из RichEdit1 с переносом по строкам, перетягивал в Memo1, где нет переноса по строкам. Затем, программно отключал перенос по строкам, а RichEdit1 и перетягивал в него текст из Memo1. Да, всё происходило нормально, но дело в том, что при переносе текста в Memo1 терялся эффект (без переноса по строкам). Видимо при переносе из окна в окно, в конец строк вставляются символы переноса #13#10 В таком случае весь смысл переключения теряется, т.к. в процессе этих действий текст не меняется, т.е. остаётся так же (без переноса по строкам). Хорошо, ещё попробую с двумя RichEdit1, может получится. Спасибо Аватар! |
17.01.2014, 19:46 | #9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Так и без второго ричєдита нормально ведет себя
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
17.01.2014, 20:39 | #10 |
Регистрация: 30.08.2010
Сообщений: 9
|
Спасибо Аватар, всё работает отлично!
Попытался прокоментировать ваш код: Код:
Огромное спасибо! ________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка на панели форматирования с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 17.01.2014 в 21:37. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с печатью в RichEdit | Sanek777 | Общие вопросы Delphi | 2 | 28.09.2008 05:57 |
richedit | Arkuz | Общие вопросы Delphi | 3 | 24.09.2008 22:38 |
RichEdit | StartMis | Общие вопросы Delphi | 20 | 24.04.2008 15:40 |
RichEdit | Римма | Компоненты Delphi | 3 | 23.01.2008 14:33 |
Проблема с RichEdit | nex777 | Компоненты Delphi | 3 | 02.06.2007 15:43 |