コントロールのZオーダーを変更する

コントロールの Zオーダーを変更して前面に持ってくるには BringToFrontメソッド、背面に移動するには SendToBack メソッドを使います。(って教えてもらったんですけど) で、せっかく API でのやり方も調べたのでとりあえず載せておきます。 SetWindowPos関数を使います。
以下の例は TButton を複数個フォームに重ねて配置し、押されたボタンの Zオーダーを変更するサンプルです。すべてのボタンの OnClickイベントがこの手続きを呼び出すようにしてください。

■ ボタンを前面に移動する例
procedure TForm1.Button1Click(Sender: TObject);     
begin
  if  (Sender is TButton) then  begin
    with  (Sender as TButton) do  begin
      SetWindowPos(Handle,
                   HWND_TOP,
                   Left,
                   Top,
                   Width,
                   Height,
                   SWP_SHOWWINDOW);
    end;
  end;
end;

引数 HWND_TOP はウィンドウの Zオーダーを上位に指定することを意味します。また、最後の SWP_SHOWWINDOW はウィンドウを表示することを意味します。引数については API 日本語ヘルプに詳細があります。ご覧下さい。