Случилось мне тут написать небольшую программку на VB3. В целях максимального погружения, писала под Windows 3.11. Заметила забавное отличие от VB6. Если в VB6 что-то так или иначе объявлено (функция, переменная, константа), то при вводе кода программы, редактор автоматически приводит регистр к варианту, как в объявлении. К слову, случается это при переходе курсора на другую строку, когда редактор начинает парсить введённое и выводить сообщения об ошибках. Единственное, члены перечислений работают иначе: при вводе кода программы регистр членов перечисления в объявлении приводится к тому, что ты пишешь. Возможно, это как-то связано с тем, что объявление выглядит как простое присвоение без каких-то опознавательных знаков (а то и безо всякого присвоения), и редактор думает, что введённое не определено. Для борьбы с этим, находчивые люди придумали дублировать объявление членов перечислений, как обычных констант, в блоке условной компиляции, который в итоговую программу не попадёт. Редактор не понимает, какие блоки выполняются, а какие нет, и трюк прокатывает. Так вот, последнее выглядит как прикол из прошлого, ведь именно так всё вело себя в VB3 (и более ранних). Объявляешь константу, пишешь функцию, всё красиво, с красивым регистром, а потом пишешь код с вызовом функции и с упоминанием константы, всё в нижнем регистре, и... И объявления тоже меняют регистр. В итоге, чтобы всё было красиво, приходится следить, что и как ты там набираешь.