Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
4-1171695722
VitAngel
2007-02-17 10:02
2007.07.29
ShellExecute


2-1183404561
ilya_ae
2007-07-02 23:29
2007.07.29
insertSql


2-1183612932
DelphiN!
2007-07-05 09:22
2007.07.29
Получить номер строки в проекте по адресу при AV


15-1183160038
O.O
2007-06-30 03:33
2007.07.29
D6 и Vista


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский