Пользовательские модули
|
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 не объявлена в интерфейсном разделе, то есть не видна из других модулей и программ.
В этом разделе мы немного коснулись темы видимости переменных. Более подробно об этом я расскажу в следующем разделе.