Согласие на обработку персональных данных.



04.11.2017
Новые видео и статья Функция Odd.

29.10.2017
Новые видео и статья Функция Low.

23.10.2017
Новая задача Даны натуральные числа от 1 до 33.

22.10.2017
Добавлен раздел Статьи по С/С++.

03.10.2017
Новая книга 1001 вопрос начинающего программиста.

Пользовательские модули

Основы программирования Основы программирования
Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее...

В этом разделе я расскажу, как создать свой модуль и как использовать его в своей программе. Структуру модуля вы уже знаете. Если забыли, то см. здесь: Модули.

Итак, создаём программу обычным уже известным нам способом.

Затем выбираем в меню ФАЙЛ команду СОЗДАТЬ МОДУЛЬ.

Сохраняем модуль под именем, например, myunit. Для этого выбираем меню ФАЙЛ - СОХРАНИТЬ.

Всё. Модуль готов и сохранён. Для верности можете сохранить весь проект.

При создании модуля в Lazarus структура его формируется автоматически, то есть в редакторе исходного кода сразу появляются основные разделы модуля. И вам остаётся только добавить свой код.

Итак, добавляем свои подпрограммы в модуль и получаем примерно следующее:

Листинг 26.1. Наш модуль на Паскале.
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.

Обратите внимание на комментарии. Вы уже изучили немало, поэтому должны понимать смысл этих комментариев. Более подробно описывать не буду.

А теперь посмотрим, как использовать функции нашего модуля в нашей программе.

Листинг 26.2. Использование модуля в программе.
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 не объявлена в интерфейсном разделе, то есть не видна из других модулей и программ.

В этом разделе мы немного коснулись темы видимости переменных. Более подробно об этом я расскажу в следующем разделе.


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

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