-
Может кто обьяснит, почему размер потока ограничен значением типа
Cardinal, в то время как в VCL это тип int64?
Это недогляд или принипиальное ограничение?
-
Есть такая вещь:
STREAM_LARGE64 - turns on support of streams (and files) of size larger
then 4 Gbytes. Data type Int64 used for parameters of
the most of methods and functions in such case. (Note:
Int64 was introduced since Delphi5, so in earlier Delphi
versions using this symbol is not possible).
-
Включал я её. Ноль эмоций. И вообще много функций не работает. Например условный поиск в строке.
-
Как понять ноль эмоций?) ребилд делал? что за условный поиск? конкретно какая функция
-
мдя про ребилд забыл...
Ну хорошо. Получил я значение типа int64. Как его первести в строку?
В VCL это делвет IntToStr. А в KOL?
-
RTFM!!!
-
Читаю. Вот цитата из книги по KOL
В Delphi, начиная с версии 5, появился тип данных Int64, для работы с 8-байтными целыми числами. Но в более ранних версиях Delphi этого типа данных не было. Для того, чтобы возможно было с ними работать и в старших версиях Delphi, в KOL вводится свой собственный тип данных I64 и разработан набор функций для работы с этим типом данных:
................................................
................................................
Никто не мешает, тем не менее, использовать встроенный в Delphi младших версий тип данных Int64 (но для преобразования таких чисел в строку и обратно я рекомендую все-таки использовать функции Int64_2Str, Str2Int64, выполняя соответствующие приведения типа данных). Использование прочих вышеуказанных функций имеет смысл, только если проект разрабатывается на Delphi 3 или 2.
Вот всё что скзано.
"выполняя соответствующие приведения типа данных."
А где функция привидения типов?
Неужели так долго её написать и вставить в библиотеку, а то вообще ввести символ условной компиляции котрый напямую позволит использовать int64?
То что приводить надо это я и так понял и функцию написал...
Но у вас что за трмоз? Или уже всё это есть а я не знаю?
-
Lirk (16.06.09 18:30) [6]
> и функцию написал...
Интересно было бы посмотреть.
-
Пожалуста
Function Int64_2I64(a_:int64):I64;
var
v:integer;
begin
v:=a_;
result.Lo:=v;
result.Hi:= a_ shr 32;
end;
var
STR_:String;
STR_:= int64_2str(Int64_2I64(9000000000));
-
Приведение типа, или typecast, описан в справке по Delphi. I64(i), где i:Int64, и Int64(j), где j: I64. Никаких функций для этого не требуется, так как внутренняя структура этих типов данных полностью совпадает. Никто не мешает использовать Int64, и там, где требуется I64, делать typecast. Символ компиляции можно, но их уже и так очень много. Кроме того, все эти IFDEF/ENDIF увеличивают число строк кода, что мешает удерживать размер kol.pas в пределах 64К строк (ограничения в компиляторе, дальше проблемы с отладчиком).
О каких тормзах (без О) речь?
-
Да... но только в VCL
В KOL это typecast не работает. Проверьте если не верите.
-
А на счёт тормозов, извените за то что вышла опечатка.
Что касается самих тормозов... Последнее обновление было давно.
Ошибок куча. На сайте много битых ссылок. Никому ничего не надо.
Вот вы к примеру выложили модуль GIF. А где сжатие? Стандартный модуль для Delphi его включает.
Книга заморожена. И к ней тоже много вопросов.
Или я чего-то не понимаю... Например про типы. В заголвке стоит TBitmap
А речь идёт о PBitmap.
Вот цитата стр.53
Объект растрового изображения объектного типа TBitmap создается конструкторами NewBitmap( W, H ) - создает "зависимое от устройства" растровое изображение (DDB - Device Dependent Bitmap) ширины W и высоты H пикселей;
И так везде, с каждым типом
пробовал StrSatisfy( s, p )
строка "кот" маска "к?т"
выдало false
И таких примеров можно привести много.
-
Что касается 64К строк. А почему бы не разбить библиотеку на несколько файлов? Все контролы с формой в одну, Потоки в другую
Приведение типов в третью...
-
TBitmap - объект. PBitmap - указатель на объект, теперь понятнее?
StrSatisfy - работает на ура (лично у меня), конкретно покажи пример кода с ошибкой.
> И таких примеров можно привести много.
Пожалуйста, в студию =)
> Что касается 64К строк. А почему бы не разбить библиотеку
> на несколько файлов? Все контролы с формой в одну, Потоки
> в другую
> Приведение типов в третью...
обсуждалось неоднократно... но если вкратце - переноса не будет =)
> Вот вы к примеру выложили модуль GIF. А где сжатие? Стандартный
> модуль для Delphi его включает.
Не смотрел этот модуль.. Дык сжатие реализовано, но не включено? или не реализовано и надо чтоб кто-то реализовал?
> Что касается самих тормозов... Последнее обновление было
> давно.
> Ошибок куча. На сайте много битых ссылок. Никому ничего
> не надо.
Согласен лишь с тем что обновлений давно не было. Надо "скинуться" фиксами\дополнениями и зарелизить новую версию. Про какие кучи ошибок идет речь - не понимаю...
-
Ага, я вот нашел недавно один баг: неправильно работал TCanvas.Arc. Жутко критично.
-
> Lirk
Ты забыл одну вещь - KOL бесплатен и никто денег за его развитие не получает. В отличие от того же VCL. Поэтому твой гонор в сторону "сделайте то, сделайте вот это" крайне неуместен, а на фоне плохого понимания сути KOL и некоторых элементарных основ дельфей выглядит еще и глупо. Никто не заявлял на главной странице "изучить KOL легко". Однако многие его изучили. И у тебя получится. Если захочешь.
-
> Vladimir Kladov © (18.06.09 19:31) [14]
> Ага, я вот нашел недавно один баг: неправильно работал TCanvas.Arc
давно :)
-
А нужен? В принципе, вызывается Windows.Arc(Canvas.Handle, ... и все работает. Но можно и обновить, если очень хочется.