コントロールの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 日本語ヘルプに詳細があります。ご覧下さい。