Problemas com Herança de Formulários

Delphi

06/07/2004

Tenho um formulário (PAI) bem básico, que define a localização de alguns botões, propriedades de formulário, como borda, estilo de centralização, entre outras coisas.

Crio vários formulários(FILHOS), que são herdados desse que me referi acima.

Em um terceiro formulário, quando chamo qualquer um dos FILHOS, é dado uma mensagem de erro, informando que existe um componente com o mesmo nome.

É dado um EComponentError, com a mensagem ´Um componete XXXX já existe´.

Já modifiquei os nomes de alguns compontentes para evitar a duplicidade de nomes em formulários diferentes (algo do tipo Panel1, pois são componentes ´de enfeite´), mas ainda assim, continua dando a mensagem de erro.

Pelo que pude perceber, só consiguiria fazer funcionar se criasse nomes únicos para cada componente dos formulários que se relacionam, ou seja, se o formulário pai tem um botão chamado Salvar, o terceiro formulário, não poderia ter um botão com este nome também.

Não consigo ´enxergar´ onde está o problema.

Toda ajuda será bem vinda.


Daaneto

Daaneto

Curtidas 0

Respostas

Rômulo Barros

Rômulo Barros

06/07/2004

Pelo que pude perceber, só consiguiria fazer funcionar se criasse nomes únicos para cada componente dos formulários que se relacionam, ou seja, se o formulário pai tem um botão chamado Salvar, o terceiro formulário, não poderia ter um botão com este nome também. Toda ajuda será bem vinda.


Pelo contrário: Quando vc criar novos formulários a partir de um formulário base(pai), os componentes desses formulários [b:dceeb92869]terão o mesmo ´name´[/b:dceeb92869] que os componentes do formulário pai


GOSTEI 0
Daaneto

Daaneto

06/07/2004

Concordo com o que você disse, mas o que falei foi outra coisa.

Disse:
Pelo que pude perceber, só consiguiria fazer funcionar se criasse nomes únicos para cada componente dos formulários que se relacionam, ou seja, se [b:9b9930d17d]o formulário pai[/b:9b9930d17d] tem um botão chamado Salvar, [b:9b9930d17d]o terceiro formulário[/b:9b9930d17d], não poderia ter um botão com este nome também.

Ou seja, são os componentes do terceiro formulário (que não é herdado de nenhum outro formulário) e do formulário pai que tem nomes iguais e que está dando aquela mensagem de erro (EComponentError) logo quando mando criar qualquer um dos formulários filhos.

Os nomes dos componentes dos formulários pai/filhos são iguais sim.


GOSTEI 0
Paulo_amorim

Paulo_amorim

06/07/2004

Ou seja, são os componentes do terceiro formulário (que não é herdado de nenhum outro formulário) e do formulário pai que tem nomes iguais e que está dando aquela mensagem de erro (EComponentError) logo quando mando criar qualquer um dos formulários filhos.


Olá

Nao creio que o problema seja esse, pois se o 3° formulario nao eh herdado, a referencia aos objetos desse eh diferente do Form pai
supondo 2 forms: frmPai e frmIndependente

um objeto btbTeste nos 2 forms não seriam duplicados, pois têm endereços diferentes (lógicos e de memória)
frmPai.btbTeste e frmIndependente.btbTeste

Quando acontecia isso comigo eu apagava e criava outro... :roll:

Espero que ajude
Até+


GOSTEI 0
POSTAR