11.12.2019
Новые видео и статья Orwell Dev Cpp.
07.12.2019
Новые видео и статья Как изменить шрифт в HTML.
03.12.2019
Новый выпуск журнала Автоматизация и Программирование.
26.11.2019
Новые видео и статья Классы, конструкторы и прототипы в JavaScript.
22.11.2019
Новые видео и статья Функции в JavaScript.
Пользовательские модули
![]() |
Основы программирования Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее... |
В этом разделе я расскажу, как создать свой модуль и как использовать его в своей программе. Структуру модуля вы уже знаете. Если забыли, то см. здесь: Модули.
Итак, создаём программу обычным уже известным нам способом.
Затем выбираем в меню ФАЙЛ команду СОЗДАТЬ МОДУЛЬ.
Сохраняем модуль под именем, например, 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 не объявлена в интерфейсном разделе, то есть не видна из других модулей и программ.
В этом разделе мы немного коснулись темы видимости переменных. Более подробно об этом я расскажу в следующем разделе.