Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];

Вниз

Видимость переменных из private.   Найти похожие ветки 

 
Riply ©   (2006-10-28 09:59) [0]

Доброе утро!
У меня есть unit, где собраны мои супер - пупер классы.
Он сильно разросся и стало неудобно работать.
Решила его разбить на несколько юнитов по тематике,
но столкнулась с такой проблемой:
находясь в другом юните, потомок не видит private
полей родителя. Как это можно исправить ?
Или забыть о "наведениии порядка" ?
P.S. делать их public очень не хочеться :((


 
MBo ©   (2006-10-28 10:06) [1]

>Как это можно исправить ?
Не нужно это исправлять, надо правильнее спроектировать


 
Riply ©   (2006-10-28 10:12) [2]

> [1] MBo ©   (28.10.06 10:06)
Я понимаю, что "надо правильнее спроектировать", но вот
не знаю как. :( Поэтому и спрашиваю :)


 
ЮЮ ©   (2006-10-28 10:33) [3]

добавить protected свойства для доступа к эти полям


 
Anatoly Podgoretsky ©   (2006-10-28 10:54) [4]

Судя по словам private/public у тебя не переменные, а поля, в этом случае оформи их как свойства.

private
  FField: type;
public/published
  propery Field: type read FField write FField; //или Set процедура, если хочешь контролировать запись
end;


 
Riply ©   (2006-10-28 11:19) [5]

Спасибо !
P.S. Люблю, когда "в доме порядок" :)


 
Ketmar ©   (2006-10-28 14:41) [6]

вообще, лучше запомнить, что "чужаки" не должны иметь доступ к полям. это "некомильфо". надо кому-то показать -- делай метод или свойство (или и то, и другое %-).


 
vidiv ©   (2006-10-28 20:39) [7]


> Решила его разбить на несколько юнитов по тематике,
> но столкнулась с такой проблемой:
> находясь в другом юните, потомок не видит private


Мне кажется, что неправильно разбила? =)


 
Anatoly Podgoretsky ©   (2006-10-28 21:29) [8]

Разбей правильно и с нами поделись, как надо разбивать, что бы видеть приватные члены из другого модуля.


 
vidiv ©   (2006-10-28 21:33) [9]


> Anatoly Podgoretsky ©   (28.10.06 21:29) [8]

Это вы мне?


 
Anatoly Podgoretsky ©   (2006-10-28 21:40) [10]

Тебе, ты же про правильное разбиение говоришь, других вроде не видать.


 
vidiv ©   (2006-10-28 21:58) [11]

У VCL, например, таких проблем нет... Да и у меня тоже!!! При проектировани Родительского класса думать ж нужно, понадобится переменная или метод для потомков или нет!!!


 
MsGuns ©   (2006-10-28 22:38) [12]

Такая ситуация в 90% следствие концептуальной ошибки в проектировании.
Советую перед кодированием "кучи супер-пупер классов" строить на бумаге иерархическую модель объектов. Как, например, это сделано в самом VCL


 
Ketmar ©   (2006-10-28 22:53) [13]

>[12] MsGuns(c) 28-Oct-2006, 22:38
>строить на бумаге иерархическую модель объектов. Как,
>например, это сделано в самом VCL
ой. а сканы исторических документов есть в сети? я серьёзно.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.092 c
2-1162118210
ymy1
2006-10-29 13:36
2006.11.12
неиспользуемое в классе


9-1138866264
Nic
2006-02-02 10:44
2006.11.12
Как проверить установлена DirectX в системе и если нет, то...


15-1161983461
unknown
2006-10-28 01:11
2006.11.12
Clawfinger


2-1161757352
Mishenka
2006-10-25 10:22
2006.11.12
Получение фокуса компонентом.


2-1161686144
Busik
2006-10-24 14:35
2006.11.12
Помогите с кодировкой письма в Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский