===[ Программы ]=== #post-id: 7786-10-26 #original-date: 19.11.2021 Fri #original-time: 10:26 AM #original-day: 7786 #original-host: Win7 Ultimate SP1 (Build 7601) Случилось мне тут написать небольшую программку на VB3. В целях максимального погружения, писала под Windows 3.11. Заметила забавное отличие от VB6. Если в VB6 что-то так или иначе объявлено (функция, переменная, константа), то при вводе кода программы, редактор автоматически приводит регистр к варианту, как в объявлении. К слову, случается это при переходе курсора на другую строку, когда редактор начинает парсить введённое и выводить сообщения об ошибках. Единственное, члены перечислений работают иначе: при вводе кода программы регистр членов перечисления в объявлении приводится к тому, что ты пишешь. Возможно, это как-то связано с тем, что объявление выглядит как простое присвоение без каких-то опознавательных знаков (а то и безо всякого присвоения), и редактор думает, что введённое не определено. Для борьбы с этим, находчивые люди придумали дублировать объявление членов перечислений, как обычных констант, в блоке условной компиляции, который в итоговую программу не попадёт. Редактор не понимает, какие блоки выполняются, а какие нет, и трюк прокатывает. Так вот, последнее выглядит как прикол из прошлого, ведь именно так всё вело себя в VB3 (и более ранних). Объявляешь константу, пишешь функцию, всё красиво, с красивым регистром, а потом пишешь код с вызовом функции и с упоминанием константы, всё в нижнем регистре, и... И объявления тоже меняют регистр. В итоге, чтобы всё было красиво, приходится следить, что и как ты там набираешь. #upd(19.11.2021 - 10:30 AM): Трюк с перечислениями: > Public Enum Cars > crHondaCivic > crHondaCity > crGAZ3110 = 9000 > End Enum > > #If BYAKA Then > Const crHondaCivic = 0 > Const crHondaCity = 0 > Const crGAZ3110 = 9000 > #End If При этом BYAKA объявлять и использовать не нужно.