【问题标题】:adding Tframe to another Tframe at runtime在运行时将 Tframe 添加到另一个 Tframe
【发布时间】:2012-03-07 23:37:11
【问题描述】:

我有 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;
}

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

【问题讨论】:

  • 您需要更具体。 “我的代码似乎无法工作”让我们完全没有继续下去的机会。当事情不起作用时,您需要具体说明它们如何不起作用,包括您收到的任何特定错误消息。请记住,我们无法从此处读取您的想法或屏幕,因此我们拥有的唯一信息是您在问题中提供的信息。
  • 顺便说一句,TFrame1* NewFrame1 = new TFrame1(TFrame2); 是错误的。将传递的参数(Owner)从TFrame2 更改为thisTFrame2 是一个类型,你需要传递一个指向引用的指针。
  • 我添加了更多细节,代码不起作用。它只是简单地运行而没有错误,但没有添加 tframe。我试过'this'而不是TFrame2,同样的,代码运行,但是当我按下按钮时添加了o tframe

标签: runtime c++builder tframe


【解决方案1】:

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

【讨论】:

  • 我仔细检查了所有内容,但情况并非如此,但它仍然无法正常工作。我不太清楚为什么。我将尝试以不同的方式做到这一点。感谢您的贡献。
  • 我在搁置了一段时间后终于弄清楚出了什么问题。这与我的代码无关。它只是 C++ Builder 的错误。每次我进入设计视图进行调整时,我都必须回到我的代码并注释掉winproc的东西,保存它,然后取消注释winproc的东西,然后再次保存,然后它就可以工作了。我不太确定是这样,但它解决了问题。
  • 你指的是什么错误?我从来不需要做你描述的事情。
  • 这真的很奇怪。记得你教我在运行时添加/删除 Tframe stackoverflow.com/questions/9163664/…。很好,它工作正常,除非我决定在设计视图中进行一些更改,无论出于何种原因,当我尝试运行它时,它会给我一个错误,提示“模块中的错误 cpp_file 方法不正确tframe 类中的声明。"我必须注释掉 __property TNotifyEvent OnClose = {read=FOnClose, write=FOnClose};和 TNotifyEvent FOnClose;在 .h 中,保存,取消注释,再次保存,然后一切都会再次运行
猜你喜欢
  • 1970-01-01
  • 2011-05-22
  • 2012-03-05
  • 2012-02-28
  • 2014-11-19
  • 2021-04-11
  • 2011-04-29
  • 2012-09-18
  • 2010-11-09
相关资源
最近更新 更多