Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.04.02;
Скачать: [xml.tar.bz2];

Вниз

Delphi и Unicode   Найти похожие ветки 

 
veb   (2006-02-25 21:14) [0]

Здравствуйте! Уже длительное время не могу найти решение, вроде бы простой проблемы: Русскоязычное приложение запущенное в системе Windows c установленным региональными настройками на первой вкладке "Языковые стандарты и форматы" как допустим "Английский(США)" отображает вместо русских символов вопросики. Компоненты
JvDBGrid
DBGrid
Label
Menu
JvDBEdit
и т.п.
у которых возможно пробовал выставлять Font.Charset в различные варианты, ничего не попмогает. Как решить такую проблему? Неужели выносить все Caption в Resourcestring?


 
Eraser ©   (2006-02-25 21:46) [1]


> veb   (25.02.06 21:14)

если в системе не установлена русская кодировка, то с этим бороться нельзя, кроме как использовать unicode... есть соовт. компоненты, например пакет TNT, если не ошибаюсь.
Или под .NET пиши.


 
sniknik ©   (2006-02-25 21:47) [2]

http://www.tntware.com/delphicontrols/unicode/


 
Anatoly Podgoretsky ©   (2006-02-25 22:09) [3]

Интересно, почему он не реализует TTntDBLookupComboBox, очень нехватает.


 
veb   (2006-02-25 23:17) [4]

Я никак не понимаю, почему все время советуют набор каких-то левых компонентов. Т.е получается что отказаться от  библиотеки VCL от других необходимых компонентов, а использовать набор только TNT? Вот тут на форуме разыгрывается замечательный набор FastReport. И зачем он кому то нужен, если использовать его с русскими приложениями бесполезно?

Как такое вообще допустимо? Уж лучше я забью действительно все Caption в ResourceString и буду инициализировать их при запуске приложения.


 
Eraser ©   (2006-02-25 23:22) [5]


> veb   (25.02.06 23:17) [4]


> если использовать его с русскими приложениями бесполезно?

с "небольшой" оговорочкой - на не локализованой windows. И даже на таковой если кому приспичит (редкий случай), то легко добавить нужную кодировку.
не устраивает - используй .NET.

> Уж лучше я забью действительно все Caption в ResourceString
> и буду инициализировать их при запуске приложения.

и чем это поможет? :-)


 
veb   (2006-02-25 23:37) [6]

to Eraser
 Нету оговорочки! Локализованная Виндовс, но в региональных настройках, стоит допустим "Английские" стандарты.

> и чем это поможет
 Все просто, все Caption заданные в Реал-тайме отображаются корректно на "не локализованной виндовс".

 Меня пока что возмущает, что моя прога написанная на Delphi неправильно отображает русские символы, при том что все остальные проги при тех же условиях с русским работают отлично!


 
Eraser ©   (2006-02-25 23:54) [7]


> veb   (25.02.06 23:37) [6]

form.Font.Charset = RUSSIAN_CHARSET ?


 
veb   (2006-02-26 00:17) [8]

to Eraser
 Сам попробуй!
 Еще раз поменять надо на вкладке региональные настройки значения языковых форматов на первой странице на значение отличное от русского. Комп перегружать не надо, достаточно запустить свое русское приложение и наслаждаться значками вопросиков! Может я чего-то недонастроил или Borland патч выпустило?

 Если кому-нибудь удастся добиться русских букв, пожалуйста сообщите как вам это удалось!


 
Eraser ©   (2006-02-26 00:33) [9]


> veb   (26.02.06 00:17) [8]


>  Еще раз поменять надо на вкладке региональные настройки
> значения языковых форматов на первой странице на значение
> отличное от русского. Комп перегружать не надо, достаточно
> запустить свое русское приложение и наслаждаться значками
> вопросиков!

не удивительно что у вас ничего не получается. Инструкцию к ОС Windows сначала почитать надо :-)
менять надо на 3-й вкладке (Advanced) и после - перезагружать комп )


 
veb   (2006-02-26 01:08) [10]

to Eraser
 Я поражаюсь! Я говорю, о том что на первой вкладке, если изменить значение на язык отличный от "Русский" то приложение перестает работать, в отличии от остальных приложений, которые продолжают работать без проблем, а вы мне рассказываете что надо инструкцию читать.

 Речь о том что на локализованной винде, вполне вероятно, что стоят языковые форматы не обязательно русские. Это нормально! При этом дельфийская прога безбожно глючит, и мне не хочется писать каждому пользователю, что раз он хочет использовать американский принцип отображения даты, то не может читать русские символы в моей проге, хотя все другие проги при этом работают нормально! Вывод: раз я программирую на дельфи то не могу написать нормальное не глючное приложение!


 
Eraser ©   (2006-02-26 01:14) [11]


> veb   (26.02.06 01:08) [10]


> и мне не хочется писать каждому пользователю, что раз он
> хочет использовать американский принцип отображения даты,
>  то не может читать русские символы в моей проге, хотя все
> другие проги при этом работают нормально!

региональные настройки тут вообще не причём.
внимательно перечитай [9], особенно где про третию вкладку написано.

> хотя все другие проги при этом работают нормально!

все другие проги скорее всего поддерживают unicode, даже если и написаны на Делфи.

> Вывод: раз я программирую на дельфи то не могу написать
> нормальное не глючное приложение!

все притензии к Борланду.
Тем более что, начиная с 8 версии, Делфи платформу .NET поддерживает )


 
veb   (2006-02-26 01:19) [12]

> все другие проги скорее всего поддерживают unicode, даже если и написаны на Делфи.

Возвращаюсь к самому первому своему вопросу [1].
Как мне написать прогу на Delphi, поддерживающую Юникод?  Только я хочу писать на компонентах Delphi и на своих компонентах наследниках от стандартных, а не на TNT компонентах.


 
Eraser ©   (2006-02-26 01:21) [13]


> veb   (26.02.06 01:19) [12]

ответ прост - никак.


 
veb   (2006-02-26 01:22) [14]

Пожалуйста почитайте вот это обсуждение и скажите что можно на это возразить:
http://kadets.ru/comment/6311/

????


 
Eraser ©   (2006-02-26 01:29) [15]


> veb   (26.02.06 01:22) [14]

почитал, общий настрой ясен :)
ну тут 2 варианта, либо объяснять пользователям, как правильно настроить систему для работы с русскоязычными программами (типа как в  [9])), либо делать с пом. unicode-компонентов.

Вообще контингент людей, кто использует локализованные программы на винде с другой локализацией (отличной от английской и той, которая у интересующей программы) довольно мал.


 
sniknik ©   (2006-02-26 09:16) [16]

> Как мне написать прогу на Delphi, поддерживающую Юникод?  Только я хочу писать на компонентах Delphi и на своих
> компонентах наследниках от стандартных, а не на TNT компонентах.
ну так, скачай да посмотри, они же с исходниками идут.

можно не только юникодом, можно указать язык явно (не тот что дается из "региональных настроек")
в *.dpr сразу после begin поставь SetThreadLocale($419); (русский для основного потока).
но тут какието проблемы остаются, первая - главное меню программы, там похоже (судя по ранним обсуждениям, тут ктото тоже задавался такой целью и говорит решил) без правки генофонда не получится (судя по тем же обсуждениям, сам не пробовал, просто проверил (w2k)). и самое главное это работа с базой (mssql), все что в программе "красиво" при передаче в  mssql искажается на те же вопросы, тоже можно решить... наверное ;), но я не пытался. просто столкнулся с проблемой и решил, проще "откатится"  на старое, вопросы в программе это явный показатель... сразу нельзя работать. а занесенные с искажениями данные можно заметить только когда будет уже поздно.


 
veb   (2006-02-26 13:20) [17]

SetThreadLocale($419); из какого модуля?


 
Anatoly Podgoretsky ©   (2006-02-26 14:10) [18]

Win+F


 
Anatoly Podgoretsky ©   (2006-02-26 14:13) [19]

veb   (26.02.06 01:19) [12]
Переход на Delphi .NET, там Юникод, Delphi .32 Юникода нет и в помине.
Со своими компонентами просто, берешь TNT переименовываешь и наслаждаешься.


 
YuRock ©   (2006-02-27 03:25) [20]

> Вывод: раз я программирую на дельфи то не могу написать
> нормальное не глючное приложение!

Если это так - это твои проблемы, а не Делфи и Борланда.

Не вижу никаких проблем, например, писать на Делфи под юникод. Писать либо через апи, либо используя юникодные библиотеки, написанные на апи. Либо написать свою.
Именно так и пишутся все приложения, поддерживающие юникод. Вне зависимости от компилятора.

Делфи ничем не отличается от других средств для разработки приложений. Оно поддерживает юникод так же, как и всЁ.

И еще одна ремарка. Учти: если твое приложение использует юникодные функции - оно не будет работать на Win 95/98/Me (всякие Pack"и - не в счет).


 
sniknik ©   (2006-02-27 08:31) [21]

> Делфи ничем не отличается от других средств для разработки приложений. Оно поддерживает юникод так же, как и всЁ.
отличается... в них нет VCL (которая не поддерживает), а у многих дельфи ассоциируется именно с VCL (глупо конечно, но...). типа отрыл проект, уже есть форма, нажал F9 ...  "во! я написал програму с пустой формой на дельфи"(!?). а это не ты написал, это дельфи за тебя VCL-ных кирпичиков шаблон составила...

> оно не будет работать на Win 95/98/Me
будет, если грамотно написано... либо использована приведенная библиотека (а не своя неграмотная)
ремарка со ссылки
NOTE: These controls do not add Unicode capabilities to Windows 95/98/ME. They will run on any 32-bit version of Windows, but they only support Unicode on Windows NT/2000/XP/2003.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.04.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.063 c
8-1130058529
VINT
2005-10-23 13:08
2006.04.02
Компонент WindowsMediaPlayer


2-1142764813
sco
2006-03-19 13:40
2006.04.02
Полоса прокрутки


4-1136821688
VirEx
2006-01-09 18:48
2006.04.02
SetParent() встраивание окна в чужое окно


2-1142927918
Handle
2006-03-21 10:58
2006.04.02
TListView


2-1142826218
Gydvin
2006-03-20 06:43
2006.04.02
AND, OR в ASMe





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский