Ver Mensaje Individual
  #1  
Antiguo 21-04-2023
Drummer Drummer is offline
Miembro
 
Registrado: jul 2022
Posts: 18
Reputación: 0
Drummer Va por buen camino
Problemas con componente HorzscrollBox

Buenas..

En fase de Diseño Creo un HorzScrollBox (aling = Client) que contiene un TRectangle (aling=left) con un TText.

Pretendo añadir y quitar a Voluntad Objetos TRectangles (como el generado en fase de diseño) al HorzScrollBox.

Ejecuto el codigo

Inicializo el HorzScrollBox:

Cita:
void InicHorzScrollBox()
{
//Asigno "1" al TTest de Rectangle
TNum->Text = "1";
//Creo "Lista Scroll" Horizontal de 10 Objetos Rectangle
NewListHorz(2);
}
Creo "Lista" Horizontal de 10 Objetos TRectangle como el creado en fase de Diseño

Cita:
void NewListHorz(int N)
{

TRectangle *Q;

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

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

for (int i=0; i< Q->ChildrenCount; i++)
{
TText *T = dynamic_cast <TText*>(Q->Children->Items[i]);
if (T)
{

TNum->Text = IntToStr(N);
}

}
HorzScrollBox1->Content->AddObject(Q);
N= N+1;
}
}
Perfecto... me Genera un HorzScrollBox con 9 objetos TRectangles que sigen el orden de Izquierda a Derecha (TNum->Text) 1,2,3,4,5,6,7,8,9,10

A continuación elimino los 9 objetos TRectangle generados anteriormente:

Cita:
void DelObjets()
{
int n= HorzScrollBox1->Content->ChildrenCount-1;
for (int i=1; i<=n;i++)
{
HorzScrollBox1->Content->RemoveObject(1);
Application->ProcessMessages();
}
}
Me los elimina perfectamente (o eso creo) solo se muestra el TRectangle original (creado en fase diseño).

El siguiente paso es generar otros 9 Objetos cuyos TNum->Text ira del 11 al 20:


Cita:
TNum->Text = "11";
NewListHorz(12)
Genera de nuevo 9 objetos TRectangles pero esta vez el orden que sigue de Izquierda a Derecha es 11,20,19,18,19,17,16,15,14,13,12 (el que debería ser el primero en la "Lista scroll" generada es el ultimo)

No lo entiendo Alguien me puede ayudar, Gracias.
Responder Con Cita