Tagプロパティを使う

かなりピンポイントなエントリです。
Twitter上で、同じようなイベント一杯書きたく無いって感じのツイートがあったので私はこんな感じでやってますよってのを。

質問であったのは、メニュー選択でウィンドウサイズを変更する処理での事でした。
ウィンドウサイズに関してなら下記みたいな感じでいけるかなと。他の処理の場合もやっぱり、Tagプロパティを使って処理を振り分ける感じになると思います。
下記のSetWindowSizeを各メニューのイベントに設定する。

ウィンドウサイズを定数配列でもっておいて、そのインデックスをメニューアイテムのTagプロパティに設定してます。
ウィンドウサイズのリストを固定で持ってます。固定じゃ無い場合はどうしたもんでしょうね?

const
  CWINDOW_SIZES: Array[1..3,0..1] of Integer = ((800,600), (1280,800), (1440, 900));

procedure TForm1.SetWindowSize(Sender: TObject);
begin
  if Sender is TComponent then
  begin
    Idx := TComponent(Sender).Tag;
    Self.Width := CWINDOW_SIZES[Idx, 0];
    Self.Height := CWINDOW_SIZES[Idx, 1];
  end;
end;

// 動的にメニューを作成する場合はこんな感じ
procedure TForm1.FormCreate(Sender: TObject);
var
  Sz: TSize;
  mi: TMenuItem;
  Idx: Integer;
begin
  for Idx := Low(CWINDOW_SIZES) to High(CWINDOW_SIZES) do
  begin
    mi := TMenuItem.Create(Self);
    mi.Caption := Format('%d x %d', [CWINDOW_SIZES[Idx,0],CWINDOW_SIZES[Idx,1]]);
    mi.Tag := Idx;
    mi.OnClick := SetWindowSize;
    Seize2S1.Add(mi);
  end;
end;

おまけ
ウィンドウサイズに限った話でメニューキャプションをWidth x Heightの形にするならキャプションからWidthとHeightを取得するってやり方もありかなぁ