Ver Mensaje Individual
  #1  
Antiguo 18-07-2008
Lupita Lupita is offline
Miembro
 
Registrado: nov 2005
Posts: 40
Reputación: 0
Lupita Va por buen camino
borrar o liberar componente TBITBTN en tiempo de ejecucion

Hola estube checando los temas relacionados pero no me han servido o talvez algotengo mal, miren yo creo un determinado numero de botones asi

for i:=0 to slCampos.Count-1 do
begin
Boton := TBITBTN.Create(Self);
Boton.Parent := ScrollBox1;//Asignamos como padre al ScrollBox
if b=4 then
begin
aTop := aTop+ Boton.height;
b:=0;
aLeft := 10;
Boton.Left := aLeft;
inc(aLeft,Boton.Width+40);
end else
begin
Boton.Left := aLeft;
inc(aLeft,Boton.Width+40);
end;
Boton.Top := aTop;

b:=b+1;
Boton.Width := 110;
If slestado[i]='0'then
begin
Boton.Kind:= bkOK;
end else
If slestado[i]='3'then
Boton.Kind:= bkNo
else
If slestado[i]='1'then
Boton.Kind:= bkIgnore;
Boton.Name := 'Hab'+slCampos[i];
Boton.Caption := slnombres[i];
Boton.OnClick := ClickBotones;
end;

esos me los crea apretendo un boton fuera del ScrollBox1 entonces hago un proceso activando el boton en el evento onclick, entonces quiero que al terminar ese proceso me borre o me libere los botones porque la cantidad de botones creados depende de una variable que se actualiza en este evento. puse este codigo
la cantidad de botones creados es 12 entonces cuando empieza a liberar en el x=6 marca error
dice"List indexout of bounds(6)"
for x := 0 to ScrollBox1.ControlCount -1 do
begin
if ScrollBox1.Controls[x] is TBITBTN then
TBITBTN(ScrollBox1.Controls[x]).Free;
end;
Responder Con Cita