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

Вниз

Текст в RxRichEdit   Найти похожие ветки 

 
sharik_212   (2004-08-10 21:38) [0]

Господа, подскажите, как получить правильный русский текст из определенной строки в RxRichEdit. Проблемма в том, что в тексте "просто текст text", а если написать Form1.Caption:=RxRichEdit1.Lines[7], то заголовок формы станет ?????? ????? text, т.е. вместо кириллицы знаки вопросов. RxRichEdit1.Lines.Strings[7] дают тот-же результат. Помогите, пожалуйста.
Заранее огромное спасибо.


 
Dec   (2004-08-10 22:04) [1]

Попробуй поставить PlainText в false


 
sharik_212   (2004-08-10 22:19) [2]

увы...


 
begin...end ©   (2004-08-10 22:22) [3]

Может, со шрифтами что-то? Charset?


 
Кириешки ©   (2004-08-10 22:26) [4]

А что это за компонент такой RxRichEdit?
Вот с обычным RichEdit все работает нормально. :)

А может помочь обычное присвоение значения переменной например :

var
s : pchar;
begin
s := pchar( RxRichEdit1.Lines.Strings[7]);
Form1.caption := s;
end;

поробуй, может получится.


 
wnew ©   (2004-08-11 00:23) [5]

С TRichEdit в этом отношении великая проблема. Под Windows 9x и ME установка свойства CharSet в RUSSIAN_CHARSET действует безупречно, но под виндами с Win2K и выше изменение CharSet ни к чему не приводит. Есть выход - использовать специальные шрифты, к примеру: PROMT Helv Cyr Spec, но это, к сожалению, в некоторой степени будет ограничивать пользователя и кроме того, не знаю, как в этом случае с лицензией на шрифт.
  Недавно прочитал, что можно использовать один трюк: выводить текст в поток, а от туда копировать функциями буфера обмена.

  Я пытался разобраться в исходниках TRichEdit: прикольно то, что TMemo и TRichEdit оба наследуются от TCustomMemo, но TMemo корректно реагирует на установку свойства SetChar в RUSSIAN_CHARSET. Есть ещё модуль RichEdit - вот тут для меня всё запутанно, не могу уловить где собака зарыта, но кажется, что всё, всё-таки, уходит в Windows.
  Есть ещё система обучающая дельфийские контролы понимать Unicode - посмотрите здесь: http://tnt.ccci.org/delphi_unicode_controls/ я тоже ещё не испытывал этого, но собираюсь. Пока нет времени, завтра улетаю в отпуск:-)


 
wnew ©   (2004-08-11 00:25) [6]


> wnew ©   (11.08.04 00:23) [5]

Эта проблема актуальна для виндов с не русскими региональными настройками.


 
wnew ©   (2004-08-11 01:22) [7]


> wnew ©   (11.08.04 00:23) [5]
> Недавно прочитал, что можно использовать один трюк: выводить
> текст в поток, а от туда копировать функциями буфера обмена.

Нет не так. Сейчас нашёл снова беседу об этой проблеме. Там показывается трюк: текст, который в RichEdit, отображён кракозябрами, копируется из RichEdit в Stream, потом из него загружается в Memo, далее из Memo снова в Stream и на конец из Stream снова в RichEdit и прикол - RichEdit отображает кириллицу, как положено. Вот приведёный там код:

procedure TForm1.Button1Click(Sender: TObject);
begin
 RichEdit1.Clear;
 RichEdit1.Font.Charset := RUSSIAN_CHARSET;
 RichEdit1.Lines.Add("Çäðàâñòâóëòå!");  // Здравствуйте!
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 Stream: TStringStream;
begin
 Stream := TStringStream.Create(EmptyStr);
 try
   RichEdit1.Lines.SaveToStream(Stream);
   Memo1.Text := Stream.DataString;
 finally
   Stream.Free;
 end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
 Stream: TStringStream;
begin
 Stream := TStringStream.Create(Memo1.Text);
 try
   RichEdit1.Lines.LoadFromStream(Stream);
 finally
   Stream.Free;
 end;
end;

http://www.delphipraxis.net/topic30840_verschiedene+zeichensaetze+in+einer+anwendung.html&sid=39b9a2d200b8efcd1dd6660f2d 4adcf8


 
TUser ©   (2004-08-11 02:37) [8]

Не знаю, как там с Rx, но TJvRichEdit в W2K работает нормально.


 
wnew ©   (2004-08-11 03:30) [9]

Всё! Установил я себе TntUnicodeControl. Класс! Безупречно. Теперь всё равно на каком языке создавать приложение. Проверил TTntRichEdit - здорово, разумеется нужно использовать Unicode. Если, к примеру файл сохранён в Ansi, то нужно функцией StringToWideChar(const Source: string; Dest: PWideChar; DestSize: Integer): PWideChar; преобразовать в Unicode.



Страницы: 1 вся ветка

Текущий архив: 2004.08.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
14-1088092497
OSokin
2004-06-24 19:54
2004.08.29
Новый сайт


11-1080025101
user
2004-03-23 09:58
2004.08.29
Вызов 2го модального из 1го модального окна - почему??


3-1091625059
serg128
2004-08-04 17:10
2004.08.29
Как выгрузить в TStringList содержимое CLOB-поля в Oracle?


1-1092510274
GreySerg
2004-08-14 23:04
2004.08.29
Как заменить содержимое файла, открываемого с помощью TFileStream


6-1088268953
Skyhawk
2004-06-26 20:55
2004.08.29
Share admin