Como passar parametro uma variavel do tipo TForm? Estranho.

Delphi

26/10/2004

:?:

Pessoal estou tentando fazer um único metodo que pegue os campos de 2 formulários (os componentes tem o mesmo nome). Porém não estou conseguindo pois o Delphi não acha os componentes.

Tenho 3 formulário na aplicação. FrmEx1, FrmEx2 e DtmdlGeral.

No DM eu tenho um método.

Procedure Mudar_Label (Form : TForm)
Begin

Form.LblRotulo.Caption := ´Teste´;


end;


Sendo que uma vez irei chamar Mudar_Label (FrmEx1) e depois Mudar_Label (FrmEx2). POrém o Delphi não deixa complilar pois Não existe realmente o componente em tempo de Designer apenas em execução.

Fica aberto ai pessoal. Eu sei que tem como fazer um IF xxxx Else mas quero ver se tem como fazer o negócio de uma forma com menos código.


Abraços.


Yalle Cunha.
yalle@brtecno.com
www.brtecno.com


Yallebr

Yallebr

Curtidas 0

Respostas

Paulo_amorim

Paulo_amorim

26/10/2004

Olá

Utilize a função FindComponent:

TLabel(Form.FindComponent(´lblRotulo´) ).Caption := ´Teste´;


Espero que ajude
Até+


GOSTEI 0
Delphi32

Delphi32

26/10/2004

Vc já declarou no DM a unit Forms?
Talvez seja esse o problema.

Até!


GOSTEI 0
Marcio.theis

Marcio.theis

26/10/2004

Você pode tentar da seguinte forma:

var
    n: integer;
begin
while n <= (Form.ComponentCount - 1) do
    begin
    if (Form.Components[n].ClassType = TLabel) then
        begin
        if TLabel(Form.Components[n]).Name = ´lblRotulo´ then
            TLabel(Form.Components[n]).Caption:=´Teste´
        end;
     Inc(n);
end;



________________
espero ter ajudado;


GOSTEI 0
POSTAR