-
Герман, если спросить меня, то я бы не делал констант, которые могут изменяться :). Пока просто убрал тип, и сделал документацию, но лучше бы код сам себя документировал.
Медвежонок Пятачок, потому что метод в базовом модуле, который принимает тип TCommandType из этого же базового модуля не сможет принять тип TCommandType из другого модуля, так как это разные типы.
-
Вот поэтому я и не предлагал и не предлагаю "расширять" перечисление в других модулях. Одно перечисление на все про все. Растущее и удлинняющееся от версии к версии программы.
-
> Kolan © (17.03.09 10:33) [20] > > Герман, если спросить меня, то я бы не делал констант, которые > могут изменяться :).
Это было введено в Паскаль очень давно. И поменьше, но тоже давно, объявлено Борландом как оставленное для обратной совместимости, и что в новых проектах использование типизированных констант не рекомендуется! Так что сам виноват, очкарик, что вляпался. :)
-
> как теперь в другом модуле добавить в TEnum еще four и five?
Очень просто. Руками. Берешь и добавляешь. В старом модуле ничего не поломается если там нет массивов на основе твоего старого перечисления (array[TEnum]) и все твои if и case предусматривают возможность появления значения вне рамок перечисления, определенных на этапе компиляции.
-
Это если понятие "модуль" равно понятию "длл".
-
А если всё внутри одного проекта, то, имхо, только константы с префиксами. Если неохота юзать переменные константы.
-
> Это если понятие "модуль" равно понятию "длл".
Понятие модуль равно понятию модуля (unit).
> Растущее и удлинняющееся от версии к версии программы.
Так нет версий программы. Это библиотечный модуль, который используют много кто.
> А если всё внутри одного проекта, то, имхо, только константы > с префиксами.
Так и поступил.
> Так что сам виноват, очкарик, что вляпался. :)
Давненько я тут не был. :)
Вопрос считаю закрытым, благодарю за обсуждение.
-
Так нет версий программы. Это библиотечный модуль, который используют много кто.
Пусть используют. С одним длинным перечислением. если у разработчиков нет массивов по перечислению, они и не заметят изменений типа перечисления.
|