-
Версия конечно зачёт :D Есть два пожелания: 1) В функции Str2Extended заменить:
'.': if not Pt then Pt := TRUE else break;
на
'.', ',': if not Pt then Pt := TRUE else break;
Чтобы работало вот такое:
MsgOK(Extended2Str(KOL.Str2Extended('0.1')));
MsgOK(Extended2Str(KOL.Str2Extended('0,1')));
2) Чтобы не падало вот такое: StrSatisfy('stoka', ''); Добавить проверку на пустую маску
-
Хорошо, KOL 3.14159265, MCK не менялся. У меня работает, не сломалось :). Когда версию зафиксирую, буду ссылаться как на версию "пи" (стабильно).
-
У меня на сайте лежит старый достаточно уже Zoomer, он сделан с Grush (режим dual). Можете его запстить - упадет или нет, на той же машине? Просто интересно. Вдруг дело все-таки в версии KOL, и тогда что-то было устойчивее.
-
А где можно найти файл с утилтиами KOLUtils06.pas ?
-
-
Кстати.... скачал последнюю версию KOL. Delphi 7 компилирует "на ура" Delphi 5 выдает ошибку kol.pas(26878) Fatal: Internal error: C1093
Может, тут и не сама библиотека виновата..... но все же. Что это может быть? версия от 20го февраля компилировалась нормально.
-
дополню: если определить {$DEFINE DATE0_0001} компиляция в пятой дельфи проходит нормально
-
-
Я пока выложил именно такое исправление: для Delphi5 и раньше по умолчанию старый код с DATE0_0001, с Delphi6 и выше по умолчанию новый. Неправильно TRUNC работает в D5. С теми же входными значениями выдает другие выходные. Internal error у него на преобразование в INT64. В общем, новый код намного короче, но, увы, не для старых Delphi.
Заодно в версии на сайте исправлен ParamCount (асм-версия).
-
спасибо за пояснение, просто
{$IFDEF _D2orD3} {$DEFINE DATE0_0001} {$ENDIF _D2orD3}
про дельфи версий 4 и 5 - ни слова
-
Что-то не та версия. Я только что выложил 3.14159265358, до этого выкладывал без 8. Там было {$IFNDEF _D6orHigher}. Сейчас я сделал, что для D5 тоже работает, чуть-чуть больше кода требуется, байт на 80. Не умеет сразу получить int64 из числа удвоенной точности. Пришлось лишние операции делать. Так что сейчас в том месте {$IFnDEF _D5orHigher}
-
KOL.pas has exceeded 2MB - I remember that there were some issues with the file size of .pas files, should we be concerned?
-
Problem is only in setting breakpoints after 65535th line but this is a problem for Delphi 5 and earlier. May be D6 too, but there are no problems in D7. In D5, if do not stop after that line it works ok.
Next time I'll move some new asm code to kol_asm to make smaller lines in pascal part.
-
Вот такая штука тут всплыла.. Если использовать Extended2Str (а так же несколько других функций в PAS версиях) то к коду добавляется мусор из за
Assert( Result[ 1 ] = '0', 'error!' );
Предлагаю все ассерты экранировать {$IFDEF DEBUG} ... {$ENDIF}
-
Номера версий конечно оригинальные ))))
-
Этот Assert вообще закомментарю. Не помню, зачем я его оставил. Может, просто забыл. Но вообще, все ассерты убираются одним крыжиком в опциях проекта. Они как бы для этого и пишутся, чтобы их можно было этим крыжиком включать или выключать. Это уже как бы {$IFDEF}.
-
На сайте KOL 3.141592653589. В принципе, ничего особенного не менял, только вынес ассемблерные части в KOL_asm.inc и KOL_ASM_NOUNICODE.inc (новый), чтобы опять втиснуться в прокрустовы 65535 строк. Очень не хотелось плодить еще один inc-файл, так как усложняется поиск различий методом льва в коробке, теперь надо синхронные правки делать уже в 3х файлах, но видимо уже ничего не поделаешь). Теперь есть резерв в 4000 строк.
С ассертами я все-таки сделал как Dufa предложил. Оно обычно ни на что по-сути не влияет, а кому-то может понадобится такая штука, чтобы в KOL все assert'ы выключить, а прочие оставить. Сразу не подумал о такой возможности, извиняюсь.
Ждем еще неделю, и фиксируем Пи-версию.
-
Ассерты нормально теперь, а про галочку кстати совсем забыл.. В Str2Extended потеряли: '.', ',': if not Pt then Pt := TRUE else break; Локальная асм версия DateTime2SystemTime приводит к падению.. не разбирался почему. ПАС версия работает. И напомните какие функции относятся к ASM_NOUNICODE или наоборот к ASM_UNICODE
-
Исправил, 7 на конце.
Всегда не-UNICODE. Ассемблеря я для UNICODE делал для очень небольшого числа функций, в них используется просто {$IFDEF ASM_VERSION}. Если {$IFDEF ASM_UNICODE}, это значит, что асм отключится для UNICODE_CTRLS для этой функции. Вообще, в начале файла написано kol_asm_nounicode.inc
-
Вот теперь нормалек. С nounicode вроде разобрался, от наличия многих инк начинаешь запутываться уже..
Еще такое предложение: в DefFont изменить Name: 'Tahoma' (для уникода уже он стоит UNICODE_CTRLS); и Height: -11; Вроде дефолтный шрифт и дефолтный размер..
|