Jerfs 1 Denunciar post Postado Novembro 26, 2009 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 eu faço isso, não consigo acessar os objetos de dentro do formulario, ele não me dá opção para isso. Será que eu declarar o formulario parametro como TForm tá certo? Compartilhar este post Link para o post Compartilhar em outros sites
Raficcha 1 Denunciar post Postado Novembro 26, 2009 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) { FORMULARIO.edit1.text := 'TESTE'; } Veja que mudei a declaração de "procedure teste(FORMULARIO: TForm)" para "procedure teste(FORMULARIO: TForm1)"; :D você poderia tambem ter feito assim: procedure teste(FORMULARIO: TForm) { (FORMULARIO as TForm1).edit1.text := 'TESTE'; } 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 Compartilhar este post Link para o post Compartilhar em outros sites