В предложенном коде есть логическая ошибка:
В процедуре Edit1Change программа НИКОГДА не выполнит код, который записан по альтернативной ветке (else) в условии if length(s)=1 then.
Здесь, видимо, нужно иметь два объекта ввода: один для односимвольного ш-к, другой для многосимвольного.
В первом, да, можно обработку введенного кода делать по событию OnChange, где в конце автоматом переводить фокус ввода на второй едит.
Во втором придется обработку введенного ш-к вешать на событие OnExit.
Или, так же, в событии OnChange проверять количество введенных символов и только по достижении определенного количество записывать их в другой компонент. Только потом очищать едит.
---
Ошибка там сопряжена с тем, что в файле dfm имя объекта TRichEdit не определено (пустое). Надо просто указать это имя - RichEdit1.
|