今回はDelphi/400で作成するアプリケーションのステータスバーについてご紹介いたします。
Delphi/400ではステータスバー専用にTStatusBarコンポーネントが用意されています。
このTStatusBarは、Panelsプロパティにアイテムとなるパネルを追加して
ステータスを表示することができる便利なコンポーネントです。
ただしこのPanelsは個別でイベントを持っていないため、
例えば表示されたステータスパネル毎にクリックイベントを分けることができません。

パネル毎にクリック処理を分ける場合には、マウスカーソルからステータスバー上の位置を特定します。
あとはパネルの幅からクリックされたパネルを算出することができますので、
次のようなコーディングが可能になります。
// ステータスバークリック時のパネル判定処理
procedure TForm1.StatusBar1Click(Sender: TObject);
var
mpt: TPoint;
x,j: integer;
panel: integer;
begin
// マウスカーソルからステータスバー上の位置を特定
mpt := Mouse.CursorPos;
mpt := StatusBar1.ScreenToClient(mpt);
panel := -1;
x := 0;
// パネル幅からクリックされた位置のパネルを特定
for j := 0 to StatusBar1.Panels.Count - 1 do
begin
x := x + StatusBar1.Panels[j].Width;
if mpt.x < x then
begin
panel := j;
Break;
end;
end;
// パネル毎に処理
if panel = 0 then
begin
ShowMessage('パネル1クリック'); //処理
end
else if panel = 1 then
begin
ShowMessage('パネル2クリック'); //処理
end;
end;
ステータスバーへの機能実装時に、是非ご活用下さい。