|
Опубликовано 28.04.2014 19:47 (11 лет назад) # |
Daemon, да помню, был такой прикол, даже вроде обычный caption у обычной компонентной формы так делался, ща времени пока нет, завтра гляну.
Скорее всего, это из за того что текст в исходниках хранится в UTF-8, его надо привести к системной кодировке(ANSI), заюзай Caption := Utf8ToAnsi('соум текст') или UtfToAnsi, точно не помню, должно помочь. Кстати, латиница должна отображаться без приведений) |
|
|
|
Опубликовано 29.04.2014 09:58 (11 лет назад) # |
Зачем мне приводить строку к Ansi, если я использую функции с суффиксом W, которые принимают PWideChar? |
|
|
|
Опубликовано 29.04.2014 18:15 (11 лет назад) # |
Потому что ты похоже путаешь. WideChar или AnsiChar это всего лишь способ хранения данных, в WideChar данным отводится 2 байта(вроде), в AnsiChar - 1. Кодировка же это способ хранения символа и в отдельных реализациях на символ может приходится и 1 и 2 и 4 байта. То что ты используешь суффикс W ровно ничего не значит, если компилятор сам автоматом не переводит кодировку, а насколько я знаю он это делает в редких случаях. т.к. в винде по умолчанию эти функции ожидают текст в кодировке UTF-16, а приходит UTF-8 используемый во фрипаскале по умолчанию(вроде бы можно задавать кодировку каждому файлу исходника, но я так не делаю и не советую, если дальше хочешь юзать фпц, лучше просто взять за правило текст обертывать в Utf8ToAnsi). Utf8ToAnsi же приводит текст из UTF-8 в используемую системную кодировку, которую называют ANSI(На разных системах эта ANSI подразумевает свою кодировку, в винде UTF-16, в убунту UTF-8, да хоть utf8 поставь системной в нее переводить будет).
Запутанно может объяснил, но вроде так... |
|
|
|
Опубликовано 17.06.2014 08:45 (10 лет назад) # |
Забавно, при выставлении оптимизации компилятора fpc выше O1 моя прога падает на линковке шейдеров "Link called without any attached shader objects.". На O1 работает корректно. Учитывая, что дебажить не получается, ума не приложу, в чем может быть косяк :)
|
|
|
|
Опубликовано 17.06.2014 12:21 (10 лет назад) # |
Окружить место работы с шейдерами директивами
{$O-}
код
{$O+}
пробовали ?
редакция от phomm, 17.06.2014 12:21 |
|
|
|
Опубликовано 17.06.2014 15:02 (10 лет назад) # |
Как-то я эту тему пропустил, но дополню http://xproger.mentalx.org/archives/135 8)
редакция от XProger, 17.06.2014 15:02 |
|
|
|
Опубликовано 17.06.2014 15:27 (10 лет назад) # |
phomm
Не приходило в голову даже :)
Попробую :) |
|
|
|
Опубликовано 22.01.2015 19:15 (10 лет назад) # |
MysticCoder написал:
...Utf8ToAnsi же приводит текст из UTF-8 в используемую системную кодировку...
В системную кодировку ОСи текст приводит функция Utf8ToSys() - объявлена в модуле fileutil, если я не ошибаюсь.
P.S. На Lazarus'е сижу уже лет 6, после того, как возникла необходимость лицензионно чистой разработки, а цена на Delphi, мягко говоря, кусается... |
|
|