So if you want to do something when the TEdit.Text changes (keyboard, mouse or in code), you'll need to use OnChange.
Agreed. And as the OP posted: OnChange doesn't fire for him when in echomode=emPassword under Cocoa.
The classic experience: You register at a website, you get an E-Mail with your cryptic Password. You copy the password from the E-Mail, and paste it in the Textbox....
Or in OP's case a probable application: TEdit is in password-mode, and while the user enters his password, the OP tries to gauge, how "good" this password is, and he would need OnChange for that