アンカー等の設定説明 ( No.16 )
日時: 2022/03/27 12:21
名前: REDCHEEKS

ウィンドウズ用のアプリの多くは、液晶ディスプレイ画面の大きさや解像度に応じて、大きさを自由に変更できるのが売りです(そうでない固定サイズのもありますが)。
以下、課題1および課題2で作成した「逃げるオシリのアルゴリズム」を例に、その設定方法について説明します。

ウィンドウの拡大・縮小自体は、別に何もしなくても、自動で出来るようになっています(むしろそれを止め固定サイズにするためには逆に設定が必要です)。
ただ、ウィンドウ上に配置したボタンや、リストボックス等のうち、どう再配置するか何を拡大するのかという定義が必要です。
それをしないと、拡大出来ても意味がありません。
これらは「アンカー」と言うもので設定します。
アンカーとは、船の錨(イカリ)の事です。


「逃げるオシリのアルゴリズム」の例で述べますと、「お仕置き開始」ボタンと、お仕置きの流れを表示するリストボックス、この2つについてアンカーの設定が必要です。

(1) 「お仕置き開始」ボタン

大きさ:ウインドウの大きさが拡大しても「お仕置き開始」ボタンそれ自体の大きさは変わらない。
位 置:常にウインドウの左下

(2) (お仕置きの流れを表示する)リストボックス

大きさ:ウインドウの大きさが拡大すれば、それに合わせ拡大し、お仕置きの流れがより詳細に表示されること。
位 置:ウインドウの上下左右から常に一定の距離を維持し、(1)の「お仕置き開始」ボタンと重ならないこと。


アンカーの初期値は、いずれも、Top(上) + Left(左)ですので、それぞれ以下のように変更する必要があります。

(1) 「お仕置き開始」ボタン

Top(上) + Left(左) ⇒ Bottom(下) + Left(左)

※ 常にウインドウの左下に配置するため、アンカーは、top(上) をやめて bottom(下)に変更する。

(2) お仕置きの流れを表示するリストボックス

Top(上) + Left(左) ⇒ Top(上) + Bottom(下) + Left(左) + Right(右)

アンカーには、Bottom(下) と Right(右) を追加し、全方位にする。

※ アンカーが全方位になることで、ウインドウが拡大した場合は、全方位に引っ張られ引き延ばされる。


実際の設定操作は、次の通りです。

(1) 「お仕置き開始」ボタン

http://mediasp.kir.jp/img20220326/imgloglog-box/img20210107212954.jpg
@ Form1.cs[デザイン]タブを選択し、デザイナ画面を表示する。
A「お仕置き開始」ボタンをクリックし、選択する。
B button1 が選択されている事を確認する。
C Anchor の右にあるコンボボックスをクリックする。
D Top(上)をクリックして削除する。
E Bottom(下)をクリックして追加する。
F Bottom(下) + Left(左) になっている事を確認する。

(2) (お仕置きの流れを表示する)リストボックス

http://mediasp.kir.jp/img20220326/imgloglog-box/img20210107213940.jpg
@ リストボックスをクリックし、選択する。
A listBox1 が選択されている事を確認する。
B Anchor の右にあるコンボボックスをクリックする。
C Bottom(下)をクリックして追加する。
D Right(右)をクリックして追加する。
E Top(上) + Bottom(下) + Left(左) + Right(右) になっている事を確認する。

以上で、アンカーの設定は終わりです。

叩く回数の設定、および実行 ( No.17 )
日時: 2022/03/27 12:22
名前: REDCHEEKS

課題1および課題2では、オシリを叩く回数は、12発固定でしたね。
でも画面が大きくなったら、もっと沢山叩けそうですね
むしろ物足りなく感じるでしょう。

そういう場合、通常は何発叩くかを設定する入力画面を設けるのですが、説明も面倒だし(そういうのは一般的技術書に譲るとして)ここではウインドウのサイズから、テキトーに比例計算して、叩く回数を設定します。

プログラム的には、Osioki()関数の先頭を、以下のように修正します。

int n = 12; // 残りの回数

int n = listBox1.Height / 10; // 残りの回数

以下、実行例です。

http://mediasp.kir.jp/img20220326/imgloglog-box/img20210107214006.jpg
@ ウインドウの先頭の境目をドラッグし、一番上に持って行く。
A ウインドウが、上から下まで、全画面表示される。


※ このプログラム、動かしてみると、けっこう興奮してきます。
  辛いお仕置きに感情移入してしまうともうビンビン、ボッキーです