Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera,
Quero passar um formulario como parametro e depois utilizar um objeto de dentro dele, por exemplo:
procedure teste(FORMULARIO: TForm) {
FORMULARIO.edit1.text := 'TESTE';
}
teste(frmPrincipal);
Quando você cria um formulario você esta criando na verdade uma classe que é filha de TForm, ou seja, outra classe.
Quando você solta os componentes no seu form, la no Delphi, na verdade aquele la não é o seu form, e sim a classe que seu Form vai instanciar depois.
Veja na sua Unit1, la na sessão uses, deve estar mais ou menos(depende do nome do seu form) assim: "TForm1 = class(TForm)". Isso ai quer dizer que a classe que seu formulário irá herdar é TForm1, e não TForm, por isso não aparece o Edit1 na sua função.
Para a sua função funcionar basta alterar para
procedure teste(FORMULARIO: TForm1) {
:D
você poderia tambem ter feito assim:
procedure teste(FORMULARIO: TForm) {
neste caso você esta dizendo que "FORMULARIO" é um ponteiro para um TForm ou qualquer Classe que herde TForm, por isso, eu coloquei(FORMULARIO as TForm1) para dizer que FORMULARIO deve ser tratado como um TForm1
(o primeiro exemplo é mais facil de entender)
Ixe, complicado né, e pior que existem outras maneiras de se fazer isso.. hehe, mas espero que ajude:
Qualquer coisa pode voltar aqui ou me mandar um e-mail: tonello.rafinha@gmail.com