Пользовательские модули
Lazarus IDE: Основы программирования в Windows
Несмотря на то, что всё потихоньку уходит в сеть, программирование для настольных компьютеров остаётся востребованным. И будет таковым ещё долго. Ну а самая распространённая операционная система для настольных компьютеров – это по-прежнему Windows. Поэтому любой программист, даже если он собирается стать веб-разработчиком, должен знать хотя бы основы создания программ для Windows. Подробнее... |
В этом разделе я расскажу, как создать свой модуль и как использовать его в своей программе. Структуру модуля вы уже знаете. Если забыли, то см. здесь: Модули.
Итак, создаём программу обычным уже известным нам способом.
Затем выбираем в меню ФАЙЛ команду СОЗДАТЬ МОДУЛЬ.
Сохраняем модуль под именем, например, myunit. Для этого выбираем меню ФАЙЛ - СОХРАНИТЬ.
Всё. Модуль готов и сохранён. Для верности можете сохранить весь проект.
При создании модуля в Lazarus структура его формируется автоматически, то есть в редакторе исходного кода сразу появляются основные разделы модуля. И вам остаётся только добавить свой код.
Итак, добавляем свои подпрограммы в модуль и получаем примерно следующее:
unit myunit; {$mode objfpc}{$H+} interface uses Classes, SysUtils; var x : integer; function MyFunc(y : integer) : integer; implementation {********************************************************************** Эта функция будет видна из других программ, так как она объявлена в разделе interface **********************************************************************} function MyFunc(y : integer) : integer; begin Result := x + y; end; {********************************************************************** Эта функция НЕ будет видна из других программ, так как она НЕ объявлена в разделе interface. Однако она будет видна в самом модуле myunit. **********************************************************************} function MyFunc100 : integer; begin Result := 100; end; begin x := MyFunc100; end.
Обратите внимание на комментарии. Вы уже изучили немало, поэтому должны понимать смысл этих комментариев. Более подробно описывать не буду.
А теперь посмотрим, как использовать функции нашего модуля в нашей программе.
program mu; {$mode objfpc}{$H+} uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} Classes, myunit { you can add units after this }; begin x := MyFunc(50); Write(x); ReadLn; end.
Первым делом нужно подключить модуль к программе. Вы уже знаете, как это сделать. Если вы создавали этот модуль из этой же программы, то модуль будет подключен автоматически.
Ну а дальше, надеюсь, всё понятно. Мы не объявляем в программе переменную х, так как она объявлена в модуле myunit в разделе глобальных переменных, следовательно, видна из нашей программы.
В программе мы вызываем функцию MyFunc, а результат выводим на экран. Если же вы попробуете вызвать из программы функцию MyFunc100, которая также имеется в нашем модуле, то это приведёт к ошибке компиляции, так как функция MyFunc100 не объявлена в интерфейсном разделе, то есть не видна из других модулей и программ.
В этом разделе мы немного коснулись темы видимости переменных. Более подробно об этом я расскажу в следующем разделе.