Fórum Controle de Botoes #369605
03/04/2009
0
Nesse metodo passo o painel que desejo varer e o botao pressionado, o problema é que eu estou tentando passar o nome do painel de acordo com a Page selecionada sem precisar saber a quantidade de Pages que tenho, entao estou tentando o seguinte:
declaracao do metodo: procedure Varer(xpainel: TPanel; xbotao: String); chamando (caso tenha digitado F3): Varer(´Painel´+Page.ActivePageIndex, ´ALTERAR´); parte do metodo varer: for i := 0 to xpainel.ControlCount - 1 do Erro obvio: Estou tentando montar o nome do painel concatenando uma string, erro pq o metodo esta esperando um painel.
Como faço para montar o nome do componente painel para poder passar pro metodo, sem ficar colocando:
IF (Page.ActivePageIndex = 0) then
Varer(Painel0,´ALTERAR´)
Porque posso ter um PageControl com variadas quantidades de Pages, gostaria entao de criar um metodo e uma chamada simples.
Obrigado
Felipeiw
Curtir tópico
+ 0Posts
04/04/2009
Carlosfim
Da mesma forma que você utiliza a coleção de controles que está no painel
parte do metodo varer: for i := 0 to xpainel.ControlCount - 1 do
você pode usar para ´varrer´ o TabSheet a procura do painel desejado.
Exemplo:
Procedure Varer(TabAtual: TTabSheet, Acao: String); var i: integer; begin for i:= 0 to TabAtual.ControlCount do begin if TabAtual.Controls[i].ClassName = "TPanel" then begin if TPanel(TabAtual.Controls[i]).Name = ´Nome do Painel´ then begin ...Achou o painel, agora é só fazer o que quiser... end; end; end; end;
Assim você pode passar toda a página atual para o procedimento
chamando (caso tenha digitado F3): Varer(Page.ActivePageIndex, ´ALTERAR´);
Espero ter ajudado,
Gostei + 0
06/04/2009
Felipeiw
Abs
Gostei + 0
20/04/2009
Emarcolongo
Varer(TPanel(sender).Name, ´ALTERAR´);
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)