我有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添加到主窗体上。
答案 0 :(得分:0)
根据您显示的代码,唯一可能出错的是,如果您将子框架的Top
属性设置为超过其父框架的Height
属性的值,那么你不会看到子框架出现在屏幕上,即使它确实存在于内存中。