HorzscrollBox组件问题(c++ ANDROID))

问题描述 投票:0回答:0

在设计阶段,我创建了一个 HorzScrollBox (aling = Client),其中包含一个带有 TText 的 TRectangle [MiRectangle] (aling=left)。

我打算在 HorzScrollBox 中添加和删除 At Will TRectangles 对象(就像在设计阶段生成的对象一样)。

我运行代码:

我初始化 HorzScrollBox

void InicHorzScrollBox()
{
  //Assign "1" to TRectangle's TText
  TNum->Text = "1";

  //Create Horizontal "Scroll List" of 10 TRectangle Objects
  NewListHorz(2);
}

我创建了一个包含 10 个 TRectangle 对象的“水平列表”,就像在设计阶段创建的一样

void NewListHorz(int N)
{

  TRectangle *Q;

  int F = N+9;
  while (N<F)
  {

   Q = static_cast <TRectangle*> (MiRectangle->Clone(0));

   for (int i=0; i< Q->ChildrenCount; i++)
    {
     TText *T = dynamic_cast <TText*>(Q->Children->Items[i]);
     if (T)
      {
        T->Text = IntToStr(N);
      } 
  }
  HorzScrollBox1->Content->AddObject(Q);
  N= N+1;
 }
}

Perfect... 它生成一个 HorzScrollBox,其中包含 9 个 TRectangles 对象,这些对象遵循从左到右的顺序(TNum->Text)1,2,3,4,5,6,7,8,9,10 接下来我删除之前生成的 9 个 TRectangle 对象:

void DelObjets()
{
  int n= HorzScrollBox1->Content->ChildrenCount-1;
  for (int i=1; i<=n;i++)
   {
    HorzScrollBox1->Content->RemoveObject(1);
    Application->ProcessMessages();
   }
}

它完美地消除了它们(或者我认为如此)只显示了原始的 TRectangle(在设计阶段创建)。

下一步是生成另外 9 个对象,其 TNum->Text 将从 11 变为 20:

TNum->Text = "11";
NewListHorz(12)

再次生成 9 个 TRectangles 对象,但这次它从左到右的顺序是 11,20,19,18,19,17,16,15,14,13,12(应该在“列表滚动”中排在第一位) “生成的是最后一个)

我不明白,谁能帮我,谢谢。

c++ firemonkey c++builder
© www.soinside.com 2019 - 2024. All rights reserved.