Enterキーで次の入力項目に移動する方法について

Enterキーでタブ順で次のフィールドにフォーカスを移動させる方法

この機能をアプリケーションに実装することで、IBM i (AS/400)の時のようにEnterキーで次の入力項目に移動できるようになります。  
Delphi/400でこの機能を実現させるためにはいくつかの方法があります。ちょっと考えただけで大体3通りぐらいの方法が思い浮かびます。  
今回ご紹介するのはその中から一番使いまわしできる方法をご紹介したいと思います。
具体的には、Windows APIを使用し、「Windowsが認識するタブ順で次のフィールド(以下次のフィールド)に移動しなさい」と命令してあげます。  
開発者が必要なのは、きちんとタブオーダーを設定することと、各フィールドのOnKeyDownに今回の命令を書き加えてあげることです。  
具体的には、各コンポーネントのOnkeyDownに以下の処理を付け加えます。

if Key = VK_RETURN then
begin
  SendMessage(GetParentForm(Self).Handle, WM_NEXTDLGCTL,0, 0);
  Key:=0;
end;
この処理の内容を簡単に説明しますと、VK_RETURNは Windowsユニットで定義されている仮想キーコードで、Enterキーを表します。
SendMessageは、あるウィンドウにメッセージを送るという意味を持っています。
このあるウィンドウとは、SelfのGetParentFormで処理されたウィンドウです。
簡単に言うとフォームに書いた場合にはフォームそのもの、コンポーネントのイベントハンドラに書いた場合にはコンポーネントが配置してあるフォームとなります。
WM_NEXTDLGCTLは、実際に送るメッセージを示していて「次のフィールドにカーソルを移動しなさい」という意味です。  
key := 0は、Enterキーを押したときのデフォルトの動作を無効にするためです。
この処理をしないと、Beep音がキーを押すたびに発生します。  
この処理は多くのコントロールのイベントハンドラに書くことになるので、できればコンポーネントを作成して処理を追加したほうが効率的です。