在运行时将Tframe添加到另一个Tframe

时间:2012-02-16 14:59:27

标签: runtime c++builder tframe

我有2个tframe,还有一个添加按钮。当按下按钮时,我试图在另一个上添加一个tframe。但是因为我的代码似乎无法正常工作。它不是像它想象的那样添加框架。没有错误或运行,它编译并运行,但是当我按下按钮它什么都不做。当我将一个tframe添加到滚动框时,我得到了它的工作,我所做的只是改变了要添加的tframe的位置。

TFrame2的代码

void __fastcall TFrame2::AddFrame()
{
    int temp = 0;
    TFrame1* NewFrame1 = new TFrame1(this);
    NewFrame1 ->Parent=this;

    TComponentEnumerator * ParentEnum = GetEnumerator();

    while(ParentEnum->MoveNext())
    {
        temp++;
    }

    NewFrame1 ->SetIndex(temp);
    NewFrame1 ->Name = "Frame" + IntToStr(temp);
    NewFrame1 ->Top = ( NewFrame1 ->Height ) * (temp);
}

这是我用于TFrame1本身的代码

void __fastcall TFrame1 ::SetIndex(int temp)
{
    this->temp= temp;
}

int __fastcall TFrame1 ::GetIndex()
{
    return this->temp;
}

一个lil bg信息:我必须将tframe添加到另一个tframe的原因是,所以我可以将一组组件添加到另一组组件,我不知道任何其他方式来做到这一点。稍后我将tframe2添加到主窗体上。

1 个答案:

答案 0 :(得分:0)

根据您显示的代码,唯一可能出错的是,如果您将子框架的Top属性设置为超过其父框架的Height属性的值,那么你不会看到子框架出现在屏幕上,即使它确实存在于内存中。

相关问题