Главная страница
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.041 c
1-1092389998
Aleksander
2004-08-13 13:39
2004.08.29
Как обработать символ < >


14-1091834254
Piter
2004-08-07 03:17
2004.08.29
Лицо со шрамом


11-1080063840
Delphi5.01
2004-03-23 20:44
2004.08.29
Chem mojet bit vizvana oshibka: ExptIntf.dcu


14-1091834611
Piter
2004-08-07 03:23
2004.08.29
Сайт Анатолия все популярнее :)


3-1091444847
Sectey
2004-08-02 15:07
2004.08.29
Расположение бизнес логики приложения.