Стандартные модули

Lazarus IDE: Основы программирования в Windows 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.

Пожалуй, на этой оптимистичной ноте разговор о стандартных модулях мы закончим. А в следующем уроке мы создадим свой собственный модуль и научимся его использовать в своей программе.


Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика