Странное поведение ввода контрольного имени в коде vb6 - PullRequest
0 голосов
/ 11 сентября 2010

У меня есть элемент управления меткой в ​​форме с именем lblTotal

Во время моей последней фиксации в хранилище я был удивлен, увидев название этой формы в измененном списке.

Когда я просматривал код, я увидел, что все вхождения этого элемента управления теперь были lbltotal (т.е. Small t).

Само имя элемента управления было lblTotal в окне свойств.

Далее, когда я использовал ctrl-F с сопоставлением регистра, чтобы найти lbltotal , он нашел бы только один, так как мгновенно все остальные вхождения вернулись бы к lblTotal . Таким образом, кажется, что в какой-то момент после того, как среда IDE записывает какое-то событие в окне кода, она находит способ привести корпус в соответствие с именем элемента управления.

Что я не понимаю, так это то, как это произошло в первую очередь без изменения имени элемента управления? Может кто-нибудь объяснить, как?

PS После того, как я написал выше, я увидел это . Интересно, что у меня также была строковая переменная, имя которой меняло ее регистр во время того же коммита, и я предположил, что, должно быть, изменил ее сам, но теперь, прочитав выше, я думаю, что это потому, что одно и то же имя переменной присутствовало в другой области видимости. Однако больше нигде в проекте не встречается lbltotal .

PPS lblTotal на самом деле lblTotal (0) , и многие другие копии загружаются во время выполнения, поэтому многие ссылки на код являются lbltotal (x1) .Caption и т. Д. Я не знаю, имеет ли это какое-то значение.

Наконец, кто-нибудь когда-нибудь видел, чтобы vb6 самостоятельно менял регистр строковых литералов? (Пожалуйста, Боже, нет!) На самом деле, этот последний момент вызывает у меня наибольшее беспокойство по поводу этого опыта, поскольку в TOO многие места в строковых литералах кодовой базы используются в условных предложениях.

1 Ответ

0 голосов
/ 01 февраля 2012

В дополнение к упомянутому поведению, VB6 также изменяет регистры имен переменных, которые встречаются в любом из интерфейсов COM, на которые ссылается ваша программа, что означает, что если вы ссылаетесь на новую библиотеку или меняете их порядок, еще веселее.

В свое время я даже написал небольшую программу, которая "искажала" исходный код VB6 из словаря имен; главный недостаток этого заключается в том, что вы должны запускать его перед каждым исходным коммитом.

Но я думаю, что ответ от wqw здесь -> https://stackoverflow.com/a/1078018/108753, вероятно, является лучшим решением проблемы, которую я видел, потому что он количественно оценил и использовал поведение IDE для решения проблемы.

По крайней мере, это не VB3 - VB3 изменяет регистр каждой переменной в любых файлах, которые вы загрузили в память, до того, что вы в последний раз набрали . Что делает вас более точным при наборе регистра в именах переменных ....

...