Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

HELENO de Sant'Anna

Chamar um mesmo formulário de dois locais.

Recommended Posts

Olá pessoal!

 

O problema é o seguinte: estou desenvolvendo uma aplicação que possui, entre outros, os formulários frmFuncionarios e frmCidades. O que acontece é o seguinte, esse form (frmCidades) é chamado tanto de um menu do Formulário Principal quanto do interior do form frmFuncionarios. Quando eu o chamo de dentro do form frmFuncionarios não dá certo porque o frmFuncionarios, no evento onOpen, abre a tabela Cidades, então, quando eu fecho o form frmCidades ele fecha a tabela Cidades e deixa inativo o campo cbxCidade do form frmFuncionarios.

 

RESUMINDO: Como eu faço para chamar o frmCidades tanto do menu do Formulário Principal quanto do interior do form frmFuncionarios uma vez que ambos os formulários (frmCidades e frmFuncionarios) abrem e fecham a tabela Cidades?

 

Desde já agradeço!

 

OBS.: o código que utilizo para chamar um form é o seguinte:

 

procedure TfrmFuncionarios.btnInserirCidade2Click(Sender: TObject);
var
cadCidade2 : TfrmCidades;
begin
cadCidade2:= TfrmCidades.Create(Self);
cadCidade2.ShowModal;
end;

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá heleno,retire o form do Auto-create form's(que fica em Project> options) e crie o form com o application.createform(Classe,formulário);

No seu caso você colocaria

 

try
    Application.CreateForm(TFrmCidades,FrmCidades);
     FrmCidades.ShowModal;
   finally

   FreeAndNil(FrmCidades);

   end;

Espero que funcione e termine seu sistema,abraço e um ótimo fim de semana.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá PrdoDelphi, fico enormemente grato com a sua ajuda (de coração), agora, não sei se isso irá resolver o meu problema. Porque o meu problema é com a tabela Cidades, ela é aberta tanto no form frmCidades quanto no frmFuncionarios. Acontece que eu chamo também o form frmCidades do interior do frmFuncionários, então quando eu FECHO o frmCidades ele fecha a tabela Cidades e um dos campos (aliás dois: cbxNaturalidade e cbxCidade) do frmFuncionários acabam ficando INATIVOS.

 

É uma questão de necessidade: eu preciso ter form para cadastrar as cidades do meu Estado (Pernambuco), mas eu preciso também chamar esse form frmCidades de dentro do frmFuncionários porque no momento em que eu estiver cadastrando um funcionário que nasceu em uma cidade que ainda não foi cadastrada eu NÃO precise fechar o form frmFuncionário, abrir o frmCidades, cadastrar uma nova cidade, fechar o frmCidade, abrir o frmFuncionários e fazer de novo o cadastro do funcionário.

 

Mas eu gostaria de dizer que a sua ajuda foi de grande valia, uma vez que eu não chamo os formulários dessa maneira e estou percebendo que o seu código é mais incrementado que o meu.

 

Valeu mesmo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá heleno,muito bom dia!


Se você estiver atualizando a tabela de cidades(fechando e abrindo) no evento Onshow do frmFuncionário e se no evento OnClose do frmFuncionário você não estiver fechando a tabela e ainda sim continuar com algum erro,retorne e mande o erro para que possa verificar melhor. Boa sorte!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite, PrdoDelphi,

 

Rapaz, quebrei a cabeça uns dois dias mas consegui chegar a dois códigos que estão funcionando.

 

1º) - Funciona perfeitamente:

 

procedure TfrmCidades.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if FindWindow('TfrmFuncionarios',nil) = 0
then
begin
dm_dadosSeduc.tbl_cidades.Close;
end
else
begin
dm_dadosSeduc.tbl_cidades.Close;
dm_dadosSeduc.tbl_cidades.Open;
end;
end;
2º) Funciona perfeitamente também:
procedure TfrmCidades.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if dm_dadosSeduc.tbl_funcionarios = nil
then
begin
dm_dadosSeduc.tbl_cidades.Close;
end
else
begin
dm_dadosSeduc.tbl_cidades.Close;
dm_dadosSeduc.tbl_cidades.Open;
end;
end;
No primeiro, a tabela cidades só fecha se o form frmFuncionarios estiver fechado, enquanto o no segundo a tabela cidades só fecha se a tabela funcionarios estiver fechada.
QUAL DOS DOIS VOCÊ ME ACONSELHA A UTILIZAR?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.