0

我有 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 添加到主窗体中。

4

1 回答 1

0

鉴于您显示的代码,唯一可能出错的是,如果您将子框架的Top属性设置为超出Height其父框架属性的值,这样您就不会看到子框架出现在屏幕上,即使它确实出现了存在于记忆中。

于 2012-02-17T02:27:29.857 回答