幅が 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
これでもいいけれど、どっちが解り易いかなぁ…?
|