И что это я, в самом деле, всё про JVCL, да про JVCL? Давайте я вам лучше за JCL расскажу.
JCL поставляется в виде архива, содержащего исходные файлы библиотеки, файлы справки, несколько экспертов для IDE и установщик, способный установить всё это в Delphi. Библиотека JCL может установлена в Delphi с 6й(более ранние не проверял) по 2009 версию, включая Delphi Turbo Explorer.
Примечание: при первой установке JCL и JVCL не получится установить с помощью Lazy Delphi Builder. Причина в том, что обе библиотеки настраиваются при помощи .inc-файлов, а эти файлы генерируются установщиком Jedi при первой установке. Впрочем, при желании их можно сгенерировать и вручную из шаблона.
Полностью разобраться со всем и подробно описать, задача нереальная. Поэтому я дам только поверхностное описание Jedi Code Library 3.35, основанное на справке той же версии:
- Функции, процедуры и типы появившиеся только в старших версиях Delphi, для облегчения поддержания классов и компонентов в старых версиях Delphi. Проще говоря, если необходимо скомпилировать код из Delphi 2007, например, в Delphi 5, то JCL может немного упростить процесс перевода.
- Containers. Абстрактный класс и интерфейсы для реализации потокобезопасных(thread-safe) контейнеров(векторы, связанные списки, ассоциативные массивы).
- Интерфейсы: IJclIterator, IJclIntfCollection, IJclCollection, IJclIntfList, IJclList, IJclIntfArray, IJclArray, IJclIntfSet, IJclSet, IJclIntfTree, IJclTree, IJclIntfIntfMap, IJclMap, IJclIntfQueue, IJclQueue, IJclSortedMap, IJclIntfSortedSet, IJclSortedSet, IJclIntfStack, IJclStack, IJclStrIterator, IJclStrCollection, IJclStrList, IJclStrSet, IJclStrTree, IJclMultiIntfIntfMap, IJclStrIntfMap, IJclStrStrMap, IJclStrMap, IJclStrStrSortedMap, IJclStrStack, TJclTraverseOrder
- Классы реализующие: хеш-таблицы, ассоциативные массивы, векторы, стеки, очереди, массивы, ordered sets(упорядоченные множества?).
- Date and time. Функции по работе с датой и временем(вычисление Пасхи, преобразование в формат дат других ОС и файловых систем), функции и интерфейсы для реализации планировщика задач(IJclSchedule, IJclScheduleDayFrequency, IJclDailySchedule, IJclWeeklySchedule, IJclMonthlySchedule, IJclYearlySchedule – если кому-нибудь доводилось реализовывать планирование "как в Outlook-е”, то он в курсе сколько там возни;-)), а также таймеры для замеров времени выполнения кода.
- Debugging. Очень мощная поддержка отладки кода: функции по отправке сообщения отладчику, перехват исключений(exceptions hooks), получение информации об обработчике исключения(except frame), парсер map-файлов, получение информации из стека вызовов, включая получение имени класса, процедуры и номера строки вызвавшей исключение. См. также статью на Rsdn: Локализация ошибок в приложениях Delphi с помощью библиотеки Jedi Code Library.
- Expression Evaluation. Разбор и вычисление выражений. Классы для анализа и вычисления математических выражений, позволяющих контролировать анализ, вычисления, классы умеющие компилировать вычисленное выражение в бинарный код и возвращать указатель на скомпилированную функцию, работа со списками выражений.
- Files and IO. Работа с файловой системой. Функции для получения детальной информации о файлах(дата время модификации, создателя, владельца), поиска файлов по маске, получения списка файлов в каталоге, создания резервных копий, удаления в корзину, блокировка диска(lock volume), работа с NTFS(сжатие, работа с потоками и другие, - более 20 функций), манипуляции с путями(paths), работа с временными файлами, работа с отображаемыми в память файлами.
- Graphics. Сюда входят классы для манипуляций с изображениями(бывшая библиотека Graphics32), функции для работы с цветовыми каналами, функции для сохранения полноцветных иконок(allowing for > 16 colors) в Tstream и файл, функции для манипуляции с TRect, класс-обёртка над регионами(wrapper for windows regions) - TjclRegion,
- Internationalisation. Классы для работы с клавиатурными раскладками(keyboard layout): получение списка доступных, активация, выгрузка, просмотр свойств раскладки. Классы для получения информации о локалях(locale) – получение списка, чтение информации.
- MAPI. Классы и функции по работе с мейлами через MAPI. Содержит классы: TJclEmail, TJclEmailRecip, TJclEmailRecips, TJclSimpleMapi.
- Libraries, Processes and Threads. Классы и структуры для чтения Portable Executable File Format. Потокобезопасные функции по работе с integer(LockedCompareExchange, LockedExchangeAdd, LockedAdd, LockedExchangeSub, LockedSub, LockedExchange, LockedExchangeInc, LockedInc, LockedExchangeDec, LockedDec). Объекты синхронизации: TJclCriticalSection, TJclCriticalSectionEx, TJclDispatcherObject, TJclEvent, TJclMeteredSection, TJclMultiReadExclusiveWrite, TJclMutex, TJclOptex, TJclSemaphore, TJclWaitableTimer.
- Math routines.
- TJclComplex – класс, реализующий комплексные числа и следующие операции над ними: базовая арифметика, натуральные логарифмические и экспоненциальные функции, тригонометрические функции, гиперболические тригонометрические функции, комплексные функции Бесселя.
- Функции по работе с CRC(crc16 и crc32)
- Поддержка чисел с плавающей запятой.
- Работа с FPU(8087) (чтение каких-то данных)
- Различные математические функции .
- Memory, Classes and Objects. Функции и классы по работе с памятью, манипуляции с DMT, VMT.
- Guards отвечают за автоматическое освобождение выделенной памяти при выходе из области видимости(scope). Насколько я понял, guards делает то же, что и try…finally блок, но с меньшим количеством набранного кода.
- Манипуляции с классами. Включают в себя функции, проверяющие является ли указатель классом или объектом(IsClass, IsObject), функцию пытающуюся реализовать грязный хак по подмене родительского класса – SetClassParent(не представляю где подобное может понадобится), а также функции по получению информации о виртуальных и динамических методах, списках методов и полей
- MIME. Функции по MIME кодированию, декодированию(MIME64).
- Miscellaneous. Функции позволяющие выключить, перезагрузить компьютер, запустить процесс от имени пользователя, изменить разрешение экрана.
- Ordinal Math and Logic. (затрудняюсь описать)
- Registry and Ini files. Функции(только функции) для работы с реестром(без использования TRegistry) и ini-файлами.
- Runtime Type Information. Получение и генерация RTTI информации. Для получения информации в JCL объявлена функция JclTypeInfo, возвращающая один из интерфейсов: IJclBaseInfo, IJclClassTypeInfo, IJclDynArrayTypeInfo, IJclEnumerationTypeInfo, IJclEventTypeInfo, IJclFloatTypeInfo, IJclInt64TypeInfo, IJclInterfaceTypeInfo, IJclOrdinalRangeTypeInfo, IJclOrdinalTypeInfo, IJclSetTypeInfo, IJclStringTypeInfo, IJclTypeInfo. Для генерации RTTI, JCL предоставляет следующие функции: JclGenerateSetType, JclGenerateEnumType, JclGenerateEnumTypeBasedOn, JclGenerateSubRange, RemoveTypeInfo.
- String Manipulation. Функции для манипуляции со строками и списками строк: поиск, замена, тестирование символов.
- System Information Routines. Получение информации о системе
- Common Folders. Функции возвращающие пути до системных папок. Примерно такие: GetCommonAppdataFolder, GetStartmenuFolder, GetSendToFolder
- Environment. Функции для чтения, создания, удаления и редактирования переменных окружения(Environment variables).
- Hardware. Чтение информации о процессоре(-ах), о кэше процессора, CPUID, Mac-адреса, TestFDIVInstruction.
- Identification. Получение серийных номеров дисков(Volumes), информации о BIOS-е, компьютере, домене.
- А также, функции реализующие получение информации о свободной памяти, версии Windows, проверкe включен ли User Account Control, чтение состояния клавиатуры.
- Unicode. Функции по работе с юникодом, в основном из библиотеки Mike Lischke. Включает в себя классы TWideStrings, TWideStringList, а также классы для поиска TURESearch(поиск с использованием регулярных выражений) и TUTBMSearch(поиск по алгоритму Бойера — Мура). Все эти функции работают также в версиях Delphi, не поддерживающих юникод(!).
- Unit Conversions. Функции для перевода из одних единиц измерения в другие.
- LAN Manager. Функции для управления группами и пользователями: чтение, создание, удаление.
- RegularExpressions. Регулярные выражения. Согласно хелпу, содержит заголовки и классы к pcre.dll(Perl-compatible Regular Expressions).
- Security. Проверка доступа и наличия привилегий.
- Shell. Работа с shortcuts, PIDL-ами, иконками shell, и такими функциями: SHDeleteFolder, SHDeleteFiles, SHRenameFile, SHEnumFolderFirst, SHEnumFolderClose, SHEnumFolderNext.
- Windows NT Service control
и как же ставить в Delphi Turbo Explorer
ОтветитьУдалитьЗапустить Install turbo delphi.bat?
ОтветитьУдалитьСкомпилировал JediInstaller.exe тем же Delphi Turbo Explorer и после запуска turbo delphi.bat вылетает ошибка Range check error. Как побороть?
ОтветитьУдалитьСкачал вот этот архив JVCL338CompleteJCL201-Build3449.zip