Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   FireMonkey (https://www.clubdelphi.com/foros/forumdisplay.php?f=50)
-   -   Problemas con componente HorzscrollBox (https://www.clubdelphi.com/foros/showthread.php?t=96205)

Drummer 21-04-2023 10:24:11

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.


La franja horaria es GMT +2. Ahora son las 23:23:08.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi