Fórum Criar Form dinamicamente #279534
29/04/2005
0
Procurei por um tópico com esse assunto, mas não encontrei. Então resolvi enviar este tópico...
:?
Meu problema é o seguinte: preciso criar uma função para criar Forms em tempo de execução. Pensei em fazer uma função do tipo CriaForm(param1, param2 : string), onde o param1 é o nome da variável do form e param2 é o nome do tipo (ComponentClass) do form. O problema é como faço o Create do form? Como faço o cast type para a variável e para a classe?
Não sei se esta é a única e / ou a melhor forma...
Grato antecipadamente pela ajuda.
Lercosta
Curtir tópico
+ 0Posts
29/04/2005
Yallebr
Não entendi bem.
Param1 = Nome do Formulário. Ex FrmTeste1
Param2 = Tipo do Form TForm. Se é para cirar apenas form, então não precisa esse segundo parametro.
seria assim ao meu ver
procedure CriaForm(NomeDoForm); var NovoForm: TFrom begin NovoForm := TForm.Create(nil) Novoform.Name := NomeDoForm end;
Gostei + 0
29/04/2005
Lercosta
Eu posso criar esse form mesmo se não herdar diretamente de TForm? Eu tenho alguns Forms de modelo e uma das minhas dúvidas é se o form será criado mesmo sendo herdado diretamente de outro Form que não seja o TForm...
Grato.
Gostei + 0
29/04/2005
Massuda
Gostei + 0
29/04/2005
Lercosta
Já entendi como funciona.
O problema é que eu queria criar todos os Forms do projeto para verificar os componentes que necessitam ser cadastrados automaticamente para o Controle de Acesso. Explico melhor: estamos fazendo um controle de acessos para os novos sistemas desenvolvidos para a nossa empresa. Para evitarmos o trabalho de cadastrarmos os componentes que os usuários terão acesso, alteraremos a propriedade Tag de cada componente que quisermos controlar. Para isso deverá existir uma função que lerá todos os componentes de todos os Forms para saber quais serão controlados. Como fazer isso se nem todos os Forms estão criados. Acho que através do TScreen só aparecem os Forms criados, correto?
Grato mais uma vez pela ajuda!
Gostei + 0
29/04/2005
Yallebr
Sim, claro. Vc pode herdar até de TObject. Mas ai vc vai ter muito trabalho, vai refazer o que a borland fez. (Bom que se vc fizer um TSeuForm melhor que o TForm podia postar aqui para nós o código. 8) )
Brincadeira.
Eu recomendaria vc herdar de TCustomForm se vc quer ser um pouco mais radical em relação ao TForm. Assim vc aproveitaria quase 100¬ do trabalho já feito pela Borland.
E para aproveitar 100¬ do TFrom herde diretamente do TForm, assim vc so especializa ele para sua necessidade.
Abraços
Gostei + 0
29/04/2005
Massuda
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)