Hola , pues no era tan complicado como pensaba, te dejo un avance para que ya veas algunos resultados:
Código Delphi
[-]
var
HeightBut, WidthBut: Integer;
ParentVarCount, ParentVarMax: TPanel;
ID, I, TopCount, LeftCount : Integer;
Boton: TButton;
begin
HeightBut := 20;
WidthBut := 20;
ParentVarCount:= Panel1;
ParentVarMax:= Panel1;
TopCount:= 0;
LeftCount := 0;
for I := 0 to (Round(ParentVarCount.Height / HeightBut)) - 1 do begin
for ID := 0 to (Round(ParentVarCount.Width / WidthBut)) - 1 do begin
Boton := TButton.Create(ParentVarCount);
Boton.Left := LeftCount*WidthBut + ParentVarCount.Left;
Boton.Top := TopCount*HeightBut + ParentVarCount.Top;
Boton.Height := HeightBut;
Boton.Width := WidthBut;
Boton.Parent:= ParentVarCount.Parent;
Boton.Show;
LeftCount:= LeftCount +1;
end;
LeftCount := 0;
TopCount:= TopCount +1;
end;
CRea un panel con dimensiones 200x200
PD: pueden haber otros metodos que ocupe menos recursos....
Ahora solo falta agregar la función de que pase de un panel a otro......pero eso creo que lo haré después, si encuentras algo más no dudes en postearlo...
Utilice la opción ROund(redondeo) asi que la agregación de botones nunca va a ser perfecto a menos que la división entre el Height y Width del boton con el H o W del panel sea un numero entero, como en el ejemplo. 40x40 y 400x400 Número entero 10
54Lu2