Ограничение видимости переменной

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

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

Ответить
krab
постоялец
Сообщения: 108
Зарегистрирован: 17.02.2010 17:23:08

Ограничение видимости переменной

Сообщение krab »

Нужно, чтобы переменная была видна только в двух юнитах, а в остальных - нет.
Обычно это делается так:

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

unit Unit1;
interface

implementation
var
  PrivateVar: TObj;

Хочу разбить большой юнит на два, и, соответственно, сделать доступной переменную и второму (вспомогательному) юниту. Но оставить переменную недоступной для других. Как это сделать?
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Re: Ограничение видимости переменной

Сообщение Mr.Smart »

Вынести код модулей в *.inc файлы.
krab
постоялец
Сообщения: 108
Зарегистрирован: 17.02.2010 17:23:08

Re: Ограничение видимости переменной

Сообщение krab »

Mr.Smart писал(а):Вынести код модулей в *.inc файлы.

В чем отличие .inс от обычных модулей? И в том, и в том случае делается "uses File;".
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Re: Ограничение видимости переменной

Сообщение zub »

вынести определение переменной в третий юнит, который включить implementation uses первых двух?
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Re: Ограничение видимости переменной

Сообщение Mr.Smart »

Видимость переменной Вы ни как не ограничите. Если хотите разбить модуль то выход только включаемые файлы (inc).
п.с. Посмотрите исходники FCL/LCL там данный принцип хорошо проилюстрирован

Добавлено спустя 51 секунду:
Хотя можно сделать как советует zub
krab
постоялец
Сообщения: 108
Зарегистрирован: 17.02.2010 17:23:08

Re: Ограничение видимости переменной

Сообщение krab »

zub писал(а):вынести определение переменной в третий юнит, который включить implementation uses первых двух?
И этот третий получится полупустым.

Mr.Smart писал(а):Видимость переменной Вы ни как не ограничите. Если хотите разбить модуль то выход только включаемые файлы (inc).
п.с. Посмотрите исходники FCL/LCL там данный принцип хорошо проилюстрирован
Видимо, так и придется сделать.

Спасибо.
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Re: Ограничение видимости переменной

Сообщение zub »

>>И этот третий получится полупустым.
Что в этом плохого? Сейчас тоже столкнулся с проблемой разделения большого на помельче. ИМХО самый верный путь. *.inc - только видимость разделения
Ответить