Рыбкин |
Отправлено: 06.06.2003, 11:09 |
|
Не зарегистрирован
|
Господа прошу совета! Воюю уже долго... При отображении данных в DBGride из TMemoTable (RxLib) на некоторых клиентах с Win2000 вместо русских букв решётки. |
|
Admin |
Отправлено: 06.06.2003, 14:29 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Скорее всего дело не в TMemoTable (RxLib)),
а в том, что ваши таблицы (поля) в Dos-кодировке
Что делать, чтобы, например в DBGrid они отображались нормально:
1/ У компонента Table (Query, MemoryTable) при создании объектов
для этих полей (а это поля типа string), в свойстве
Transliterate установите false
2/ Описываем функцию перевода OEM-ANSI
// Oem To Char
AnsiString toANSI(const char *Text)
{
AnsiString str = Text;
OemToChar(Text, str.c_str());
return str;
}
//----------
3/ В событии onGetText для этого поля пишем
(например компонент Table1, поле Name)
void __fastcall TForm1::Table1NameGetText(TField *Sender, AnsiString &Text,
bool DisplayText)
{
Text = toANSI(Table1Name->AsString.c_str());
}
В DBGrid отображается нормальный русский текст.
Также проблема может быть в драйвере, нужно установить
правильный драйвер в LANGDRIVER
Отредактировано Admin — 6 Jun 2003, 23:20
|
|
Рыбкин |
Отправлено: 08.06.2003, 12:05 |
|
Не зарегистрирован
|
Заработало!! Огромное спасибо! А то юзера хотели уже коморку мою штурмом брать... |
|
|