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

Вниз

Разные языки в одной таблице...   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.019 c
2-1183410857
jonimimoni
2007-07-03 01:14
2007.07.29
Hook - перехват клавиатуры


2-1183454141
_Asph
2007-07-03 13:15
2007.07.29
Видимость модулей


6-1166624594
n_shadow
2006-12-20 17:23
2007.07.29
Заполнение структуры PHostEnt


2-1183100453
met
2007-06-29 11:00
2007.07.29
Мастера!Помогите пожалуйста


4-1171107679
Vemer
2007-02-10 14:41
2007.07.29
Убрать кнопку с панели задач средствами WinApi.