Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга о KOL.doc
Скачиваний:
29
Добавлен:
30.04.2019
Размер:
1.77 Mб
Скачать

6.2. Математика с плавающей запятой

Точно по той же причине, что и в предыдущем пункте, а именно, из стремления отказаться от подключения модуля SysUtils, для KOL был создан модуль kolmath.pas. Во многом этот модуль повторяет содержимое модуля math.pas, но обеспечивает все свои возможности без нежелательного утяжеления* кода приложения. Кроме общего набора функций из стандартного модуля math.pas, в kolmath добавлено так же некоторое количество полезных констант (например, MinSingle, MaxSingle, MinDouble, MaxDouble, MinExtended, … MaxComp) и функций (EAbs, EMin, EMax, ESign, iMin, iMax, iSign, IsPowerOf2, Low0, Low1, count_1_bits_in_byte, count_1_bits_in_dword). Функция IntPower присутствует в самом модуле KOL.pas, поэтому в kolmath она закомментирована. Для более подробного изучения содержимого модуля kolmath предлагаю ознакомиться с его исходным кодом.

Модуль kolmath, так же как и предыдущий, находится в архиве kol_err.zip на основном сайте.

6.3. Комплексные числа

Когда-то ко мне поступила такая просьба от одного из пользователей KOL: помочь в написании набора функций для более удобной работы с комплексной математикой. Просьбу я, по возможности, удовлетворил, и в результате появился модуль Cplxmath. По сути, это надстройка над модулем komath, с описанием математических действий над комплексными числами, представляемых парой чисел с плавающей запятой. Тип Complex описан как

Complex = record Re, Im: double end;

Конечно, написание кода с преобразованием математических действий в вызовы функций делает код существенно менее читабельным, чем с использованием операторов, так что использование компилятора free pascal (в котором класс комплексных чисел уже реализован через переопределение операторов) для работы с комплексной арифметикой будет более продуктивным.

Модуль Cplxmath находится в архиве kol_err.zip, вместе с модулями err и kolmath.

6.4. Диалоги

Изначально, в KOL были включены лишь самые необходимые диалоги. По мере надобности, разработчики дописывали те, которые им требовались для их работы. Вы можете скачать их и использовать при необходимости.

6.4.1. Выбор шрифта

Диалог для выбора шрифта TMHFontDialog написан Дмитрием Жаровым (ник Gandalf). См. архив MHFontDialog.zip в разделе «Диалоги» на основном сайте. Кроме того, выбор имени шрифта может выполняться через комбинированный список. Для этого может использоваться простой комби-список, заполняемый вызовами функций API для перечисления установленных в системе шрифтов. Или, чтобы не изобретать велосипед, воспользуйтесь компонентом TFontCombo от Богуслава Брандыса (Польша) – из его пакета «улучшенных комби-списков» enchcombos.zip.

6.4.2. Диалог поиска и замены

Функция поиска / замены строки может пригодиться, например, если вы реализуете собственное приложение типа блокнота. Воспользуйтесь в этом случае для реализации этой функции диалога из архива MHFindReplaceDialog, как вы можете судить по префиксу – это так же разработка Дмитрия Жарова a.k.a. Gandalf.

6.4.3. Системный диалог «о программе»

Аналогично, для вывода красивого системного диалога «О программе», на случай, если вас не устраивает простой вызов функции MessageBox, имеется диалог MHAboutDialog того же автора, что и выше.