幅が 80px のボタンが 8 個あったとするでしょ?

こんな感じで。

Width プロパティに
80 + TabOrder * 40

なんて入力すると…

幅が階段状になるよね?そして、このまま Left プロパティに…
(Parent.ClientWidth - Width) / 2

なんて入力すると…

個々のボタンがフォームに対して水平中央に配置されますよ、と (但し、プロパティを参照できるのは Delphi 2010 またはそれ以降)。
ちなみにコントロールの整列だけだったらツールバーを右クリックして [間隔] と [位置合わせ] にチェックを入れると便利なツールバーが出てくるヨ…でもね?
ボタンを 12 個貼ってすべて選択し、 Left プロパティに
Cos(2 * Pi / 12 * ((TabOrder - 2) mod 12)) * 100 + 120
Top プロパティに
Sin(2 * Pi / 12 * ((TabOrder - 2) mod 12)) * 100 + 120
と入力すると

このようなボタン配置になるヨ (12 = 頂点数、100 = 半径)。流石にこれはツールバーの [間隔] [位置合わせ] ではできないね。ボタンを時計の表示に合わせなくていいのなら、Left が…
Cos(2 * Pi / 12 * TabOrder) * 100 + 120
Top が…
Sin(2 * Pi / 12 * TabOrder) * 100 + 120
こんな感じでちょっと簡単になるヨ。
Cos(DegToRad(360 / 12 * TabOrder)) * 100 + 120 Sin(DegToRad(360 / 12 * TabOrder)) * 100 + 120
これでもいいけれど、どっちが解り易いかなぁ…?
|