Стандартные модули
Lazarus IDE: Основы программирования в Windows
Несмотря на то, что всё потихоньку уходит в сеть, программирование для настольных компьютеров остаётся востребованным. И будет таковым ещё долго. Ну а самая распространённая операционная система для настольных компьютеров – это по-прежнему Windows. Поэтому любой программист, даже если он собирается стать веб-разработчиком, должен знать хотя бы основы создания программ для Windows. Подробнее... |
Любой язык программирования предоставляет стандартные модули, которые содержат описания наиболее часто используемых функций, констант, типов данных и т.п.
Free Pascal имеет в своём арсенале несколько десятков стандартных модулей практически на все случаи жизни. Ниже перечислены только основные из этих модулей. Список все модулей и всех подпрограмм, которые объявлены в этих модулях, вы можете найти в документации среды разработки.
Модуль | Описание |
CRT | Подпрограммы для работы с вводом-выводом в текстовом режиме |
DateUtils | Подпрограммы для работы с датой и временем |
Dos | Подпрограммы для работы с функциями DOS |
Graph | Подпрограммы для работы в графическом режиме |
KeyBoard | Подпрограммы для работы с клавиатурой |
Math | Математические функции |
Mouse | Подпрограммы для работы с мышью |
Printer | Подпрограммы для работы с принтером |
Strings | Подпрограммы для работы со строками |
StrUtils | Подпрограммы для работы со строками |
System | Основные подпрограммы общего назначения. Этот модуль не нужно подключать к вашей программе, так как он подключается автоматически. |
SysUtils | Дополнительные подпрограммы общего назначения. |
Video | Подпрограммы для работы с экраном в текстовом режиме |
WinCRT | Подпрограммы ввода-вывода |
x86 | Работа с портами ввода-вывода |
Описывать все функции и процедуры всех модулей я сейчас не буду. Слишком уж это утомительное занятие. Тем более, что полное описание есть в документации. Правда, документация на английском. Ну так я вас предупреждал неоднократно в начале пути - учите английский язык.
Хочу только обратить ваше внимание на один очень важный момент:
в разных модулях могут быть разные подпрограммы с одинаковыми именами Впрочем, не только подпрограммы, но и другие данные могут иметь одинаковые идентификаторы.
Например, функция ReadKey есть как в модуле CRT, так и в модуле WinCRT.
И если вы к вашей программе подключите оба этих модуля и используете в вашей программе функцию ReadKey, то результат может оказаться для вас неожиданным.
Проблема в том, что функции с именем ReadKey в модулях CRT и WinCRT, хотя и имеют одинаковые имена, но работают по разному. Функция из модуля WinCRT не будет работать в консольном приложении, и наоборот.
Но что же всё-таки произойдёт, если вы подключите оба модуля? Какая из этих функций будет выполняться? Ведь по имени вы их отличить не сможете.
А выполняться будет та функция, чей модуль подключен последним. Например, если вы сделаете так:
program su; uses CRT, WinCrt; begin ReadKey; //Выполняется функция из модуля WinCRT end.
то выполнится функция из модуля WinCRT.
А если вы сделаете так:
program su; uses WinCrt, CRT; begin ReadKey; //Выполняется функция из модуля CRT end.
то выполняться будет функция из модуля CRT.
Пожалуй, на этой оптимистичной ноте разговор о стандартных модулях мы закончим. А в следующем уроке мы создадим свой собственный модуль и научимся его использовать в своей программе.