Несколько форм. Глобальные переменные. Как правильно?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Несколько форм. Глобальные переменные. Как правильно?

Сообщение GAMER »

В проекте планируется работа с несколькими формами. При этом с главной запускаются (создаются) остальные, которые тоже могут создавать дочерные.
1. Как правильно и оптимально это реализовать?
2. Для работы нужны глобальные переменные. (Например идентификатор сессии MySQL. Один раз залогинился и на все формы одна сессия).
3. Для работы нужны процедури и функции общие для всех, где их лучше разместить? В глобальной форме или в каком то отдельном юните?
4. Как правильно работать с глобальными переменными и глобальными процедурами/функциями?
Михаил Крамер
новенький
Сообщения: 73
Зарегистрирован: 08.02.2008 13:26:40

Сообщение Михаил Крамер »

GAMER, ничего сложного.

Код: Выделить всё

unit GlobalIdent;
Interface
var
    global_varaible1, ...., global_varaibleN: Integer;
procedure GlobalProcedure;
function GlobalFunction: Integer;
implementation

procedure GlobalProcedure;
begin
   writeln('Оператор их глобальной процедуры');
end;

function GlobalFunction: Integer;
begin
   result:= -1;
end;
end.


А потом, где надо - uses GlobalIdent;

В принципе, можно и в модуле главной формы (кстати, по умолчанию на каждую форму, которую вы рисуете в Lazarus или Delphi создаётся глобальная переменная), но так изящнее и лучше структуируется прога.

Насчёт MIDI-форм в Lazarus-е - не работал.

Да, по поводу праильно работать - использовать как можно меньше глобальных переменных. А вот с процедурами и функциями - пожалуйста, только лучше, если мы говорим об ООП, абстрагировать их в классы
Ответить