Haruyuki Mohri

毛利春幸のブログです。

TRelativePanel ControlCollection

TRelativePanel 相対パネル

相対パネルと説明されているがピンとこない。
パネルに配置されたオブジェクトそれぞれの配置属性が変えれるパネルとの事。

TRelativePanel はControlCollectionを持っていて
TRelativePanelControlCollectionこの中のリストTList<TCollectionItem> Itemにパネル上に配置されたコンポーネントとの関係をもつ。

TRelativePanel 上にTButtonをコードで並べる

void __fastcall TForm1::ButtonClick(TObject *Sender)
{
    //TRelativePanel *RelativePanel1;
    for (int i = 0; i < 10; i++)
    {
        TRelativePanelControlItem * p = RelativePanel1->ControlCollection->Add();
        int ii = i % 3;
        switch (ii) {
        case 0:
            p->AlignHorizontalCenterWithPanel    = true;
            break;
        case 1:
            p->AlignLeftWithPanel    = true;
            break;
        default:
            p->AlignRightWithPanel   = true;
        }
        p->Control = new TButton(this);
        p->Control->Name    = "RelativePButton" + IntToStr(i+ 1);
        p->Control->Width   = 200;
        p->Control->Parent    = RelativePanel1;
        p->Control->Top       = (p->Control->Height + 2)*i;
    }
}

このコードではTButton配置時にAlignを変更している。
f:id:mojeld:20180115154347p:plain

プロパティ名 機能
AlignHorizontalCenterWithPanel 中央揃え
AlignLeftWithPanel 左揃え
AlignRightWithPanel 右揃え