Чтобы автоматически преобразовать прописные и строчные буквы, многие люди сначала думают о UCase$ и LCase$. Однако, если вы хотите использовать эти две функции, вы не должны использовать их в событии Key_PRess. В противном случае, если вы введете «ABC», результатом станет «cba» 》, почему?
Потому что, когда вы вводите A, LCase$ преобразует его для вас в a, но после завершения преобразования курсор мыши остановится перед a. Если вы продолжите вводить B, он станет Ba, и LCase$ преобразует его. to ba для вас, после завершения преобразования курсор мыши останавливается перед ba. Вы продолжаете вводить C, и он становится Cba, преобразующим его в cba! Если не верите, попробуйте сами
Правильный подход в Key_Press — определить его параметр KeyAscii! Значение Asc для a равно 97, а значение Asc для A равно 65, поэтому необходимо автоматически преобразовать верхний регистр в нижний регистр. Метод записи следующий:
PrivateSubText2_KeyPress (KeyAsciiAsInteger)
IfKeyAscii>=65AndKeyAscii<=90Then
KeyAscii=KeyAscii 32
КонецЕсли->