新しいコメントの追加

Delphi 2005でTRadioGroupからTRadioButtonをアクセスする方法

日本語

Borland Developer Studio(Delphi 2005)でデザイン時に複数のラジオボタンを作成して管理するには、TRadioGroupというコンポーネントを使用することがあります。オブジェクトインスペクターを開いて、ItemsというTRadioGroupのプロパティを編集するだけで、複数のラジオボタンが簡単に追加できます。Itemsプロパティに入力した文字列に対して、TRadioGroupコンポーネント内にラジオボタンが自動的に表示されます。入力した文字列はラジオボタンのキャプションになります。次のイメージに示すように、オブジェクトインスペクター(左ペイン)のItemsプロパティに追加された文字列「Item1」、「Item2」、「Item3」は、ラジオボタンのキャプションとしてフォーム内に現れます。

しかし、オブジェクトインスペクターでTRadioGroupに属するラジオボタンのいくつかのプロパティにアクセルする方法はありません。これによって、TRadioGroupを使う場合、キャプションだけが設定できると思いこんでしまうプログラマーがいます。もちろん、この仮定は間違っています。なぜなら、ソースコードからラジオボタンとそのプロパティにまだアクセスできるからです。

TRadioGroupの各ラジオボタンはTRadioGroupのControlsプロパティからアクセスできます。Controlsプロパティは、TWinControlクラスから継承された配列です。TRadioGroupから特定のラジオボタンをアクセスするには、そのインデックスを使ってControls配列のエレメントを取得するだけです。


RadioGroup1.Controls[1].Enabled := False;

上記のサンプルソースは、次のイメージに示すようにRadioGroup1の2つ目のラジオボタンを使用不可能にします。

Topics: