Ordenação de Componente no Form

Delphi

03/04/2007

Olá colegas,

Preciso fazer o seguinte:

Tenho 16 panels em um form. Panel1,panel2,...,panel16.
Esses panels têm um tamanho uniforme de width = 50 e height = 50.
Preciso que esses panels sejam apresentados no form em 4 carreiras de 4 colunas.
Ao abrir o programa, todos são visible = false.
Á medida que um determinado valor (aleatório entre 1 e 16) é obtido, cada panel deve ir recebendo visible=true quando seu valor é obtido.
Por exemplo se o valor obtido é o 3, o panel3 deve aparecer; se o valor 12 é obtido, o panel2 deve aparecer e assim sucessivamente até que todos os 16 panels estejam visíveis na tela.
Até aqui muito simples, certo?

Meu problema/duvida é que preciso ordernar esses panels a cada obtenção de um novo valor.
Vamos a um exepmlo:

procedure sorteio;
Var
I, Valor : Integer;
begin
For I := 1 to 16 do
begin
Valor := rondom(15)+1;
Case Valor of
1 : panel1.visible := true;
2 : panel2.visible := true;
... : panel...visible := true;
16 : panel16.visible := true;
end;
Application.processeMessages;
end;
end;

Com essa prodecure, os panels vão aparecendo à medida que vão sendo sorteados. Porém, eles aparecerão na posição orginal que estão no projeto e o que eu preciso, é que, se o panel13 for o segundo a ser serteado, ele apareça na segunda coluna da primeira carreira e não na primeira coluna da quarta carreira que é sua posição no projeto, e, se no terceiro sorteio, o valor sorteado seja 10, o panel10 vá para a posição 2 da primeira carreira e o panel13 passe para a posição 3 e assim por diante.

Será que consegui explicar bem a questão?
Você poderia me ajudar no problema, por favor? Obrigado.


Armindo

Armindo

Curtidas 0
POSTAR