Страница 1 из 1
Проблема с денежными знаками Delphi2009
Добавлено: 08 июн 2009, 08:31
Exp
А у меня при переходе с D7 на D2009 при использовании таблиц парадокса, неверно стали отображаться знаки означающий валюту, а именно раньше было "1 254,34 р." а сейчас "1 254,34 @=" - последний символ похож больше на знак как на клавише ентер.
Изменение поля создание его вновь никчему не привели, все как есть так и осталось, и так везде гдеб я не использовал данные из таблицы в компонентах. Может подскажите знатоки в чем причина?
Re: Проблемма с денежными знаками Delphi2009
Добавлено: 08 июн 2009, 10:34
Duncon
В том что 2009 версию сделали в кодировке уникода..
Re: Проблемма с денежными знаками Delphi2009
Добавлено: 09 июн 2009, 04:42
Exp
Duncon писал(а):В том что 2009 версию сделали в кодировке уникода..

это как раз понятно, а вот как это обойти???? конечно можно сделать вычисляемое поле с приведение к тому формату который нужен, но нафиг изобретать то велосипед.
Re: Проблемма с денежными знаками Delphi2009
Добавлено: 09 июн 2009, 09:29
Duncon
Незнаю 2009 версию ставить не собираюсь, на ум приходит перегонять в кодировку налету..
Re: Проблемма с денежными знаками Delphi2009
Добавлено: 09 июн 2009, 10:38
Exp
Спасибо, что откликнулись, вот и у меня такие же мысли стали возникать. Короче вывод: 2009 версию сношу

откатываюсь до 2007.
Re: Проблемма с денежными знаками Delphi2009
Добавлено: 09 июн 2009, 10:49
Naeel Maqsudov
Во-первых, посмотрите, наверняка там у компонентов должны быть свойства, которые позволяют это регулировать. Ну не могли же ребята всех так "кинуть"

А потом достаточно написать обработчики событий OnGetText и OnSetText (если я не ошибся в названиях) и назначить всем полям TStringsField во всех DataSet-ах.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Вот, посмотрите,
http://www.micro-isv.asia/2008/08/get-r ... d-unicode/
пишут про директиву компилятора
{$IFDEF UNICODE}
А вот еще статья
http://www.xakep.ru/post/44864/default.asp
Старые типы данных также можно будет использовать, но потребуется явное указание типа (например, AnsiString и AnsiChar для указания старой однобайтной строки и символа).
Кроме того, был введен новый класс TEncoding, предназначенный для преобразования текста в различные кодировки. Соответственно, претерпели изменения некоторые базовые классы, которые стали использовать данный класс в реализации своих методов. Так метод LoadFromFile класса TStrings теперь автоматически определяет кодировку текста и производит его перекодировку в UTF-16 (UnicodeString), используя TEncoding. Множества вида Set of Char теперь в коде должны быть заменены на Set of AnsiChar. В противном случае компилятор выдаст ошибку
Re: Проблемма с денежными знаками Delphi2009
Добавлено: 09 июн 2009, 14:17
Exp
ага, только может быть я не совсем понятно выразился или сам не доганяю. ситуация следующая, поле Currency типа, в базе соответственно money, ранее в делфи7 и проге указав это в гриде и полях оно отображалось в денежном формате с доболнением единицы валюты, например р., не изменяя ничего, а проект в делфи2009 компилируется без ошибок и предупреждений, получаем на выходе вместо "р." фигню, и понятное дело что с кодировкой проблемма, да вот только, я то уазал в таблице что поле Currency=true и везде все соответвенно прописано соответвенно, а она зараза упорно не пишет сумму с дополнением "р." как было раньше, обрабочик на события можно повесить, но ведь это вроде как не выход, ведь дело то элементарное вроде как...