>>114
VCLの設計はkey:=0; / key:=$0; と abort どちらでも動くようになってるよ。

後半の話は、ようするにダイアログを出した事で、ダイアログ内のメッセージループで
WM_CHAR が処理されてしまう為なんで、 これを解決するには
OnKeyDown でフラグ立てて OnKeyPressでフラグ見てと処理する方法もあるけど、
そうすると、そのフラグをどこに用意するかとか、ちょっと初心者には面倒かなと。