Попробую, но не факт что получится, так как часть функционала компонента реализуется средой.
Этот топик читают: Гость
Ответов: 4628
Рейтинг: 747
|
|||
карма: 26 |
| ||
Голосовали: | lisnic |
Ответов: 4628
Рейтинг: 747
|
|||
Для работы Translator в Unicode достаточно поменять кодировку файлов перевода на UTF-16 LE.
Но я переработал компонент на использование UTF-8. Для отображения всего диапазона символов на разных языках в элементах управления нужно поставить другой шрифт. |
|||
карма: 26 |
| ||
файлы: 1 | hiTranslator_Unicode_fix.zip [1.2KB] [507] | ||
Голосовали: | lisnic |
Ответов: 194
Рейтинг: 2
|
|||
Netspirit, Работают даже кнопки!!!!
Netspirit, спасибо большое! |
|||
карма: 0 |
|
Ответов: 194
Рейтинг: 2
|
|||
Компонент "принтер" не работает под FPC 2.6.0.... 32U
Редактировалось 1 раз(а), последний 2021-05-21 19:22:32 |
|||
карма: 0 |
|
Ответов: 4628
Рейтинг: 747
|
|||
У кого были проблемы с отображением результатов вычислений (преобразование чисел в строку) - протестируйте это.
1) Откройте файл HiAsm\compiler\FPC2\src\packages\KOL\kol.pas нормальным "Блокнотом" (Notepad++, SciTE, AkelPad и т.п.) 2) Замените функцию Extended2Str() со строки 20235 (до строки 20332) на эту:
4) Выполните файлы HiAsm\compiler\FPC2\src\_make_KOL_A.bat
HiAsm\compiler\FPC2\src\_make_KOL_U.bat lisnic писал(а): Компонент "принтер" не работает |
|||
карма: 26 |
|
Ответов: 207
Рейтинг: 14
|
|||
Netspirit писал(а): протестируйте этоВзял этот пример https://forum.hiasm.com/post/308324 К сожалению на FPC-64/FPC-64U без изменений 49744124.9999999 Редактировалось 1 раз(а), последний 2021-05-20 19:19:58 |
|||
карма: 2 |
|
Ответов: 4628
Рейтинг: 747
|
|||
Вероятно, это не относится к функции конвертации числа в текст. Где-то есть потеря точности при вычислениях. Гляну.
|
|||
карма: 26 |
|
Ответов: 4628
Рейтинг: 747
|
|||
Обновлен компилятор FPC до версии 3.2.2 и пакет до ревизии 2346 основного SVN
http://depositfiles.com/files/1jqb9xs4v |
|||
карма: 26 |
| ||
Голосовали: | Joiner, lisnic, Konst |
Ответов: 207
Рейтинг: 14
|
|||
Netspirit писал(а): Где-то есть потеря точности при вычисленияхНе знаю почему, но в прошлой версии я ставил точность 21 для FPC64 и все работало. В нынешней реализации тоже помогло.
Редактировалось 1 раз(а), последний 2021-07-09 11:35:16 |
|||
карма: 2 |
|
Ответов: 4628
Рейтинг: 747
|
|||
Подобные манипуляции именно в этом месте - самообман: точность при вычислениях остается той же (если результат без вывода в окно подавать на дальнейшие вычисления), но происходит округление до меньшего количества знаков при выводе в окно (преобразовании в текст). Аналогичный эффект можно получить применив Math.round к результату. А изменение функции конвертации будет влиять на отображение всех чисел в программе.
Текущий вариант Extended2Str() был протестирован для получения одинаковых результатов со старой KOL в существующих компиляторах. Был задан набор известных чисел типа Double в двоичном виде (минимальных/максимальных значимых и др. - перечень в Википедии) и достигнуты одинаковые результаты с официальными компиляторами. При этом эта функция в официальных KOL падает на некоторых числах типа +/- Inf (моя - нет). Редактировалось 1 раз(а), последний 2021-07-11 09:47:40 |
|||
карма: 26 |
|
Ответов: 207
Рейтинг: 14
|
|||
Netspirit писал(а): происходит округление до меньшего количества знаков при выводеЯсно, спасибо за разъяснение. Netspirit писал(а): Текущий вариант Extended2Str() был протестирован для получения одинаковых результатов со старой KOLЯ нисколько не сомневался в правильности твоей функции. Netspirit писал(а): в официальных KOL падает на некоторых числахТак сам Кладов писал, что она глючная. Я пробовал переделанную родную KOLовскую функцию под WIN64. В ней заметил еще большие отклонения.
|
|||
карма: 2 |
|
Ответов: 2059
Рейтинг: 132
|
|||
Я не устанавливал FPC 2.6.0, в связи с этим у меня такой вопрос:
Хочу сделать несколько компонентов и под пакет Delphi, и под FPC. Для этого хочу сделать так: ..... {$IF Defined(FPC)} ....... {$ELSEIF Defined(DELPHI)} ..... {$IFEND} Вопрос заключается в том, надо ли мне будет переделывать сегмент FPC в соответствии с KOL, как для Delphi, или будет работать чистый код FPC? Подозреваю, что тоже надо править код. Редактировалось 2 раз(а), последний 2021-07-11 15:30:15 |
|||
карма: 6 |
|
Ответов: 4628
Рейтинг: 747
|
|||
Дефайны могут выглядеть так:
{$ifdef FPC}
{$else} {$endif} flint2 писал(а): надо ли мне будет переделывать сегмент FPC в соответствии с KOLЭто зависит от кода. Если твой код для Delphi работает в компоненте (с использованием KOL или без) - значит, в большинстве случаев будет работать и в FPC. А если не работает - надо выяснить причину и тогда пытаться обойти дефайнами. Конкретно в FPC можно использовать функции и типы данных, которые объявлены в модулях, находящихся в папках compiler\FPC2\unitsXXX (согласно перечисленных в uses стороннего кода, который ты пытаешься портировать в компонент). |
|||
карма: 26 |
|
Ответов: 2059
Рейтинг: 132
|
|||
Netspirit писал(а): Дефайны могут выглядеть так:{$ifdef FPC} {$else} {$endif} Да могут, но это не суть. Можно этот момент вообще опустить и сделать отдельные компоненты. Я грешным делом понадеялся, что могу обойтись без KOL, или всё-же это возможно? Я ещё не пробовал устанавливать FPC для HiAsm-а по этому говорить рано: А если не работает - надо выяснить причину и тогда пытаться обойти дефайнами. Не в них дело. Дело в возможности писать чистый код без KOL. В delphi это не возможно. И вот ещё, Эта версия поддерживает переменные аргументы функции? Например, Delphi 6 и выше поддерживают для совместимости с кодом, написанным в C.
Редактировалось 5 раз(а), последний 2021-07-12 22:13:24 |
|||
карма: 6 |
|
Ответов: 4628
Рейтинг: 747
|
|||
flint2 писал(а): Дело в возможности писать чистый код без KOL. В delphi это не возможно.flint2 писал(а): И вот ещё, Эта версия поддерживает переменные аргументы функции?Редактировалось 1 раз(а), последний 2021-07-15 10:41:12 |
|||
карма: 26 |
|