form como variável?

Delphi

15/07/2004

Possuo uma unit que dependendo do form que a chapa executa uma rotina que mexe com componentes deste form. Os componentes são de mesmo nome em todos os forms e para eu não ficar repetindo a mesma rotina para 20 forms,

if quem_chamou foi form_X
form_X.component_X.evento

Como faço para declarar os forms como variável? Assim poderei
(acho que poderei) usar os forms como variável tipo:

variavel := Form_X;

e fazer
variavel. component.evento


Bortol

Bortol

Curtidas 0

Respostas

Nildo

Nildo

15/07/2004

Você cria uma varável do tipo TForm e atribue ela quando for chamar a função. Ou mesmo passa seu formulário atual como parâmetro para as funções necessárias.

Depois você vai ter que usar o FindComponent para alterar as propriedades dos componentes.

procedure AlteraLabelX( form: TFOrm );
begin
   TLabel(form.FindComponent( ´label1´ )).Caption := ´Caption alterado´;
end;


E quando for chamar, de qualquer formulário você chama assim:

   AlteraLabelX( Self ); 


Esse SELF indica o formulário atual.


GOSTEI 0
Bortol

Bortol

15/07/2004

ainda uma pergunta... como faço para capturar o form e usá-lo como variável

tentei pesquisar no forum e não encontrei nada.....


GOSTEI 0
Rômulo Barros

Rômulo Barros

15/07/2004

Se a chapa for um TButton então:
TButton(Sender).Owner.Componente.Evento;

Se a chapa for um SpeedButton então:
TSpeedButton(Sender).Owner.Componente.Evento;

..... :roll:


GOSTEI 0
Nildo

Nildo

15/07/2004

Mas o Form já é uma variável.
Ele é uma variável do tipo TSeuFormulário que descende de TForm.

Nesse TSeuFormulario, alem de todas as outras variaveis e objetos do TForm ainda inclue todos os componentes que você colocou nele e mais variaveis.


GOSTEI 0
POSTAR