Во время разработки программы я случайно заметил, что все типы, объявленные внутри классов, имеют глобальную видимость.
Я всегда думал, что их видимость ограничена классом, если тип не указан с именем типа типа, как TMyClass.TMytype.Value;
Я делаю что-то действительно неправильное здесь, как структуры, такие как:
unit MyTest;
interface
type TMyTest = class
constructor Create;
strict private
type TMyType = ( NUL, SLEEP );
end;
implementation
// ...
вызывает конфликты в других единицах, которые используют этот (MyTest) блок.
Если устройство имеет Sleep (100); вызов, он будет конфликтовать с TMyTest.TMyType.SLEEP и предотвращением конфликтов, поэтому я инкапсулировал SLEEP внутри класса и TMyType в первую очередь.
Любое предложение об обходных решениях?