ボスケテー
ボスケテー

あるツールダイアログ属性のフォームに PageControl が1つ貼りつけてあります。PageControl には複数の TabSheet があります。 全ての TabSheet には
、ただ一つの Panel があり、その Panel のなかにさまざまなコントロールが
含まれています。

さて、あるタブシートを表示した際に、そのシートに含まれる
Panel の大きさにあうようにタブシート、つまりPageControl のサイズを
自動変更し、それに伴ってツールダイアログのフォームサイズも自動変更したいのです。 Adobe Photoshop や Adobe Illustrator のツールダイアログのように。

そこで、タブシート切り替えイベントで

Panel := TabSheet(Sender).Components[0] as TPanel; //シートには1つの Panel しか含まれていない

Panel.LEft := 0; Panel.Top := 0;
PageControl1.ClientWidth := Panel.Width;
PageControl1.ClientHeight := Panel.Height;
Form1.AutoSize := True;

としたのですが、TabSheet(Sender).Components[0]でエラーが
起きてしまいます。なぜでしょう。そして、どうすれば上手く行くのでしょう。