It turned out that the first parameter (nStart) must be smaller than the second parameter (nEnd). Instead of (Handle, EM_SETSEL, 100, 5) you would need to pass (Handle, EM_SETSEL, 5, 100).
These two commands are not equivalent. For the first command (5, 100) cursor position has the fifth character. For the second (100, 5) cursor position has the hundredth character. Approval 'nStart < nEnd' is not true. Standard editor (TMemo) works fine. The editor of PLSQL Developer works bad.