|
|
||||
Tips > |
|||||
実行時 ScaleBy で RadioGroup のサイズを変更 |
更新 : 2014/09/11 |
||||
|
|
||
解説: オプション画面などで、コンポーネントを通常は小さく表示しておき、用途によってサイズを変えると使い勝手が良いときがあります。 配置したコンポーネントを実行時、サイズ変更するにはどうしたらよいでしょう? C++Builder には、ScaleBy というメソッドがあって、ウィンドウコントロールとその子コントロールのサイズをスケール変更できます。 これを利用して、コンポーネントのサイズを変えてみます。 使用例: 以下の例では、数値を指定することで RadioGroup のサイズを変更しています。 準備として Label、Edit、UpDown、RadioGroup をひとつずつ適当に配置してください。 Label1 の Caption プロパティに "倍率(&S):" を入力して、Edit1 の近くに移動させます。 Edit1 の Text プロパティに "100" を設定します。 UpDown1 を Edit1 の右に移動して、Associate プロパティを Edit1、Increment プロパティを 10、 Position を 100 にしておきます。 RadioGroup1 は、Items プロパティでラジオボタンを三つ用意しておいてください。 Edit1 の OnChange イベントで、RadioGroup1 の ScaleBy メソッドを使ってサイズを変えるコードを記述します。 このままでは、続けてサイズ変更するとおかしな動きをしますので、実際には、もうひと工夫必要になります。 ここでの動きを参考にコードを追加してみてください。 //------------------------------------------------------------------- void __fastcall TForm1::Edit1Change(TObject *Sender) { int scaled = UpDown1->Position; RadioGroup1->ScaleBy(scaled, 100); } //------------------------------------------------------------------- |