El procedimiento mostrar_productos1 es el que destruye los label existentes y crea nuevos con las categorias, ya dandole un nivel y un padre:
Código Delphi
[-]
procedure TFPrincipal.mostrar_productos1;
var avanza: integer;
snivel,spadre,sclasif, consulta : string;
begin
snivel := IntToStr (nivel);
spadre := IntToStr (padre);
ZQNueva.SQL.Clear;
consulta := 'SELECT `cat_descripcion`, `cat_codigo` FROM `categorias` WHERE `cat_nivel`= '+ #39 + snivel + #39 +' and `cat_padre`= '+ #39 + spadre + #39 +';';
ZQNueva.SQL.Add(consulta);
ZQNueva.Open;
if ZQNueva.RecordCount > 0 then
begin
pos_descripciones :=0;
for avanza:=0 to 99 do
BEGIN
arr_descripciones[avanza]:='';
arr_codigos[avanza]:='';
END;
while not ZQNueva.Eof do
begin
arr_descripciones[pos_descripciones]:= ZQNueva.Fields[0].AsString;
arr_codigos [pos_descripciones]:= ZQNueva.Fields[1].AsString;
pos_descripciones := pos_descripciones +1;
ZQNueva.Next;
end;
DestruirBotones;
for avanza:=0 to pos_descripciones-1 do
begin
Contador := Contador+1;
varCaption:= arr_descripciones[avanza];
CreaBoton;
end;
end
else
begin
nivel := nivel-1;
showMessage ('Categoria vacia');
end;
end;