On 9/27/07, Joao Morais <[EMAIL PROTECTED]> wrote: > Mais ou menos isto: > > procedure ProcuraUmForm(AFormClass: TFormClass); > begin > for I := 0 to Components.Count - 1 do > if Components[I] is AFormClass then > // I aponta para um form da mesma classe ou um decendente > > if Components[I].ClassType = AFormClass then > // I aponta para a mesma classe > > Se ficar na dúvida, a segunda abordagem deve cobrir melhor o que você > pretende fazer. > > -- > Joao Morais > > > Valeu.
Ainda não é isso. O que eu gostaria de fazer é o seguinte: Passar uma variável. Se já existir um formulário daquele tipo a minha variável receberia o endereço daquele form. Senão a variável receberia um novo form criado na hora. Se eu passasse a variável e o tipo da classe seria simples de implementar isso, mas sempre existe o risco de passar uma variável com o tipo errado. E é isso que eu gostaria de evitar. Seria algo do tipo: procedure ProcuraUmForm(AForm: TForm); begin for I := 0 to Screen.FormCount do if Screen.Forms[I].ClassType = ClasseDoFormulario(Form) then AForm := Screen.Forms[I]; if AForm = nil then AForm := ClasseDoFormulario(Form).Create(Self); end; Valeu -- Leodinei Bielak http://leodinei.blogspot.com/ "In theory, there is no difference between theory and practice. In practice, however......"