Форум: "Начинающим";
Текущий архив: 2007.07.29;
Скачать: [xml.tar.bz2];
ВнизРазные языки в одной таблице... Найти похожие ветки
← →
infom © (2007-07-02 15:41) [0]Мне необходимо отобразить с помощью cxGrid таблицу похожую на словарь. 1 столбец русская фраза, остальные столбцы её английский перевод, французский и немецкий переводы соответственно. Получается один язык - один столбец. Вопрос: Можно ли сделать так чтобы в этих столбцах отображались собственные символы французского и немецкого языка (е с черточкой и т.п.).
Пытался использовать свойство CHARSET шрифтов колонки, но ничего не выходит, так как нет в списке немецких и французских чарсетов.. Подскажите куда копать, DBGrid от TNT не подходит. Во всех остальных элеменах интерфейса использую компоненты от TNT.
← →
Игорь Шевченко © (2007-07-02 15:59) [1]А StringGrid от TNT ?
← →
Плохиш © (2007-07-02 16:06) [2]
> infom © (02.07.07 15:41)
> Мне необходимо отобразить с помощью cxGrid
Рекомендую задать разработчикам cxGrid вопрос о поддержке юникода.
> так как нет в списке немецких и французских чарсетов
ANSI_CHARSET?
← →
Anatoly Podgoretsky © (2007-07-02 16:15) [3]> infom (02.07.2007 15:41:00) [0]
А cxGrid поддерживает Юникод?
Насчет "DBGrid от TNT не подходит. " - не может быть, если что и подходит, так это он.
← →
infom © (2007-07-02 18:07) [4]> ANSI_CHARSET?
Можно поподробнее про этот набор узнать?
> А cxGrid поддерживает Юникод?
> Насчет "DBGrid от TNT не подходит. " - не может быть, если
> что и подходит, так это он.
Нет он юникод не поддерживает.
"DBGrid от TNT не подходит. " он то отлично справляется я отображением widestring полей, но он не подходит по функциональности (нет группировки, InplaceEditors и т.д.)
Извинните можно я изложу свое видение этой проблемы, и как я хочу её исправить и почему задаю эти (может глупые) вопросы. Если что понимаю не так просьба указать, если можно.
Мне необходимо реализовать работу с различными языками в одном гриде, причем разделение четкое в одной ячейке может использоваться только один язык, отсюда вывод что я могу использовать дял отображения этой ячейки конкретный известный мне набор символов, скажем французский, указать это прямо компоненту и он отрисует с своеобразными символами этого языка. В БД я храню эти поля в типе nvarchar соответственно в программе везде использую Widestring.
Соответственно возникает 2 вопроса.
1. Преобразование Widestring в простой стринг и отрисовка известным чарсетом в ячейке (помоему простое присвоение справляется достаточно хорошо с преобразованием...)
2. Какой именно чарсет ставить, и отчего зависит их состав.
← →
ЮЮ © (2007-07-03 04:00) [5]> В БД я храню эти поля в типе nvarchar соответственно в
> программе везде использую Widestring.
А почему бы тогда просто не использовать полноценный Юникодовский шрифт? Ведь CharSet имеет место для ANSI-строк, разве не так?
> 1. Преобразование Widestring в простой стринг и отрисовка
> известным чарсетом в ячейке (помоему простое присвоение
> справляется достаточно хорошо с преобразованием...)
Зачем тогда nvarchar и Widestring, если это просто разное отображение ANSI-строк?
← →
infom © (2007-07-03 10:34) [6]> А почему бы тогда просто не использовать полноценный Юникодовский
> шрифт? Ведь CharSet имеет место для ANSI-строк, разве не
> так?
Можно чуть поподробнее остановиться на этом. Как использовать полноценный Юникодовский шрифт ?
← →
ЮЮ © (2007-07-03 11:05) [7]xxxGrid.Font.Name := "Arial Unicode MS";
в OnDrawCell использовать фунции рисования WideString
← →
palva © (2007-07-03 11:27) [8]
> Пытался использовать свойство CHARSET шрифтов колонки, но
> ничего не выходит, так как нет в списке немецких и французских
> чарсетов..
У меня в шрифте Arial (похоже, что это стандартный шрифт XP) есть "Западный" набор символов. Он покрывает немецкую и французскую графику. Я попробовал в TEdit установить такой шрифт и набрал на этапе разрабоки Text = Mьnchen При запуске отобразилось нормально с двумя точками - München Но здесь требуется, чтобы компьютер мог отображать немецкую графику. Я сталкивался со случаями, когда эти две точки пропадали. Подумайте, может быть для ваших целей подойдет TWebBrowser - этот отобразит все, включая анимированные гифы.
← →
infom © (2007-07-03 11:45) [9]> xxxGrid.Font.Name := "Arial Unicode MS";
>
> в OnDrawCell использовать фунции рисования WideString
Т.е. отрисовывать текст самому... Спасибо буду пробовать.
> есть "Западный" набор символов
Какой именно?
Взято из модуля Windows.pas{$EXTERNALSYM ANSI_CHARSET}
ANSI_CHARSET = 0;
{$EXTERNALSYM DEFAULT_CHARSET}
DEFAULT_CHARSET = 1;
{$EXTERNALSYM SYMBOL_CHARSET}
SYMBOL_CHARSET = 2;
{$EXTERNALSYM SHIFTJIS_CHARSET}
SHIFTJIS_CHARSET = $80;
{$EXTERNALSYM HANGEUL_CHARSET}
HANGEUL_CHARSET = 129;
{$EXTERNALSYM GB2312_CHARSET}
GB2312_CHARSET = 134;
{$EXTERNALSYM CHINESEBIG5_CHARSET}
CHINESEBIG5_CHARSET = 136;
{$EXTERNALSYM OEM_CHARSET}
OEM_CHARSET = 255;
{$EXTERNALSYM JOHAB_CHARSET}
JOHAB_CHARSET = 130;
{$EXTERNALSYM HEBREW_CHARSET}
HEBREW_CHARSET = 177;
{$EXTERNALSYM ARABIC_CHARSET}
ARABIC_CHARSET = 178;
{$EXTERNALSYM GREEK_CHARSET}
GREEK_CHARSET = 161;
{$EXTERNALSYM TURKISH_CHARSET}
TURKISH_CHARSET = 162;
{$EXTERNALSYM VIETNAMESE_CHARSET}
VIETNAMESE_CHARSET = 163;
{$EXTERNALSYM THAI_CHARSET}
THAI_CHARSET = 222;
{$EXTERNALSYM EASTEUROPE_CHARSET}
EASTEUROPE_CHARSET = 238;
{$EXTERNALSYM RUSSIAN_CHARSET}
RUSSIAN_CHARSET = 204;
{$EXTERNALSYM MAC_CHARSET}
MAC_CHARSET = 77;
{$EXTERNALSYM BALTIC_CHARSET}
BALTIC_CHARSET = 186;
{$EXTERNALSYM FS_LATIN1}
FS_LATIN1 = 1;
{$EXTERNALSYM FS_LATIN2}
FS_LATIN2 = 2;
{$EXTERNALSYM FS_CYRILLIC}
FS_CYRILLIC = 4;
{$EXTERNALSYM FS_GREEK}
FS_GREEK = 8;
{$EXTERNALSYM FS_TURKISH}
FS_TURKISH = $10;
{$EXTERNALSYM FS_HEBREW}
FS_HEBREW = $20;
{$EXTERNALSYM FS_ARABIC}
FS_ARABIC = $40;
{$EXTERNALSYM FS_BALTIC}
FS_BALTIC = $80;
{$EXTERNALSYM FS_VIETNAMESE}
FS_VIETNAMESE = $00000100;
{$EXTERNALSYM FS_THAI}
FS_THAI = $10000;
{$EXTERNALSYM FS_JISJAPAN}
FS_JISJAPAN = $20000;
{$EXTERNALSYM FS_CHINESESIMP}
FS_CHINESESIMP = $40000;
{$EXTERNALSYM FS_WANSUNG}
FS_WANSUNG = $80000;
{$EXTERNALSYM FS_CHINESETRAD}
FS_CHINESETRAD = $100000;
{$EXTERNALSYM FS_JOHAB}
FS_JOHAB = $200000;
{$EXTERNALSYM FS_SYMBOL}
FS_SYMBOL = DWORD($80000000);
← →
palva © (2007-07-03 13:24) [10]Я так понимаю, что это FS_LATIN1
Когда в среде разработки открываешь окно выбора шрифта, то, выбрав шрифт Arial, в выпадающим списке можно увидеть слово "Кириллический" если раскрыть список, то следующим словом будет "Западный". Вот это я и имел ввиду.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.07.29;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.047 c