Re: [delphi-br] Duplicar FORM
Como o Alexandre disse, não faz muito sentido fazer isso. Qual a finalidade de se fazer dois formPrincipal?? Murilo Cunha escreveu: Pessoal, Como eu posso duplicar um form? O que eu quero é criar o FORM_PRINCIPAL duas vezes. Nesta segunda vez eu crio a tela, MAS SEM EXIBI-LA, e pego todos os nomes de botoes que estao contidos nela. Depois, eu destruo esta copia e continuo usando o sistema. NO ENTANTO, quando destruo esta copia, o meu FORM_PRINCIPAL tb é destruido!!! Como criar uma COPIA INDEPENDENTE?? Obrigado. MuriloCunha -- -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: delphi-br-ow...@yahoogrupos.com.br Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: delphi-br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] Duplicar FORM
Pessoal, Meu objetivo eh o seguinte: Tenho um form para definir direitos dos usuarios no meu sistema. Quando abre esta tela, vc define qual usuario e qual tela irah configurar os direitos. Suponhamos que vc quer definir os direito para a tela principal do sistema, entao, no lado direito da tela tem um grid que lista todos os nome dos botoes e opcoes de menu para vc definir se aquele usuario pode ou nao ver a opcao, pode acessar o botao adicionar, excluir Estou fazendo desta forma: var frm_Tela: TForm; begin case cbxTelas.ItemIndex of 0: begin if frmPrincipal = nil then frmPrincipal := TfrmPrincipal.Create(Application.MainForm); frm_Tela := frmPrincipal; if frm_Tela = nil then frm_Tela := frm_Tela.Create(Application.MainForm); end; 1: begin if frmPermissoesUsuarios = nil then frmPermissoesUsuarios := TfrmPermissoesUsuarios.Create(Self); frm_Tela := frmPermissoesUsuarios; end; end; ... Vem o codigo para jogar os nomes dos componentes no grid .. finally FreeAndNil(frm_Tela); // -- Aqui ele destroi meu formulario principal, nao tem como eu continuar a trabalhar com o sistema!!! end; Obrigado. MuriloCunha On 20/04/2010 22:18, Alexandre wrote: Desculpa a intromissão mais qual seria o objetivo disso? E como você está fazendo a cópia agora? Depois da sua resposta te digo o que vc deve fazer. Em 20 de abril de 2010 13:46, Murilo Cunhamcscu...@yahoo.com.br escreveu: Pessoal, Como eu posso duplicar um form? O que eu quero é criar o FORM_PRINCIPAL duas vezes. Nesta segunda vez eu crio a tela, MAS SEM EXIBI-LA, e pego todos os nomes de botoes que estao contidos nela. Depois, eu destruo esta copia e continuo usando o sistema. NO ENTANTO, quando destruo esta copia, o meu FORM_PRINCIPAL tb é destruido!!! Como criar uma COPIA INDEPENDENTE?? Obrigado. MuriloCunha [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Duplicar FORM
Entendi o que vc quer fazer. Não sei se esta é a melhor estratégia, mas o que você precisa é percorrer todos os campos do form e jogar numa tabela, e aí atribuir visibilidade, entre outras propriedades como cores, fonte, etc. No oncreate ou onshow de cada form você chama a função passando o id do usuário e o sistema irá ler na tabela os componentes e setar as propriedades. Caso encontre componentes novos, ele adicionará na tabela para que possa ser configurado também. Quanto a configuração dos campos de telas em si, poderá haver um popup em cada componente que abrirá uma janela com as configurações e a possibilidade de atualização. Por outro lado, existe um componente que já ouvi falar por aqui na lista, que fazia exatamente isso, inclusive tratava a questão das tabelas e tudo mais. Talvez alguém lembre e seja mais prático pra você usar o componente. Não posto códigos do FindComponent porque estou sem o Delphi aqui agora. Alexandre Em 22 de abril de 2010 08:56, Murilo Cunha mcscu...@yahoo.com.br escreveu: Pessoal, Meu objetivo eh o seguinte: Tenho um form para definir direitos dos usuarios no meu sistema. Quando abre esta tela, vc define qual usuario e qual tela irah configurar os direitos. Suponhamos que vc quer definir os direito para a tela principal do sistema, entao, no lado direito da tela tem um grid que lista todos os nome dos botoes e opcoes de menu para vc definir se aquele usuario pode ou nao ver a opcao, pode acessar o botao adicionar, excluir Estou fazendo desta forma: var frm_Tela : TForm; begin case cbxTelas.ItemIndex of 0: begin if frmPrincipal = nil then frmPrincipal := TfrmPrincipal.Create(Application.MainForm); frm_Tela := frmPrincipal; if frm_Tela = nil then frm_Tela := frm_Tela.Create(Application.MainForm); end; 1: begin if frmPermissoesUsuarios = nil then frmPermissoesUsuarios := TfrmPermissoesUsuarios.Create(Self); frm_Tela := frmPermissoesUsuarios; end; end; ... Vem o codigo para jogar os nomes dos componentes no grid .. finally FreeAndNil(frm_Tela); // -- Aqui ele destroi meu formulario principal, nao tem como eu continuar a trabalhar com o sistema!!! end; Obrigado. MuriloCunha On 20/04/2010 22:18, Alexandre wrote: Desculpa a intromissão mais qual seria o objetivo disso? E como você está fazendo a cópia agora? Depois da sua resposta te digo o que vc deve fazer. Em 20 de abril de 2010 13:46, Murilo Cunhamcscu...@yahoo.com.brmcscunha%40yahoo.com.br escreveu: Pessoal, Como eu posso duplicar um form? O que eu quero é criar o FORM_PRINCIPAL duas vezes. Nesta segunda vez eu crio a tela, MAS SEM EXIBI-LA, e pego todos os nomes de botoes que estao contidos nela. Depois, eu destruo esta copia e continuo usando o sistema. NO ENTANTO, quando destruo esta copia, o meu FORM_PRINCIPAL tb é destruido!!! Como criar uma COPIA INDEPENDENTE?? Obrigado. MuriloCunha [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: delphi-br-ow...@yahoogrupos.com.br Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: delphi-br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] Duplicar FORM
Suelio, Pensando bem, acho que vc e o Alexandre tem razao! Posso verificar se este form estah criado e percorrer todos os componentes jogando os nomes no grid. Se nao estiver criado, eu crio e depois destruo. Pensando bem, acho q isso eh mais logico. ;-))) Obrigado MuriloCunha On 22/04/2010 08:52, Suélio Santos wrote: Como o Alexandre disse, não faz muito sentido fazer isso. Qual a finalidade de se fazer dois formPrincipal?? Murilo Cunha escreveu: Pessoal, Como eu posso duplicar um form? O que eu quero é criar o FORM_PRINCIPAL duas vezes. Nesta segunda vez eu crio a tela, MAS SEM EXIBI-LA, e pego todos os nomes de botoes que estao contidos nela. Depois, eu destruo esta copia e continuo usando o sistema. NO ENTANTO, quando destruo esta copia, o meu FORM_PRINCIPAL tb é destruido!!! Como criar uma COPIA INDEPENDENTE?? Obrigado. MuriloCunha -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: delphi-br-ow...@yahoogrupos.com.br Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: delphi-br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] Duplicar FORM
Outra boa opção tambem seia UserControl, agora um pouco diferente do que vc quer, ele controla apenas action list e menus. Em 22 de abril de 2010 14:03, Alexandre alexandre.pedr...@gmail.comescreveu: Entendi o que vc quer fazer. Não sei se esta é a melhor estratégia, mas o que você precisa é percorrer todos os campos do form e jogar numa tabela, e aí atribuir visibilidade, entre outras propriedades como cores, fonte, etc. No oncreate ou onshow de cada form você chama a função passando o id do usuário e o sistema irá ler na tabela os componentes e setar as propriedades. Caso encontre componentes novos, ele adicionará na tabela para que possa ser configurado também. Quanto a configuração dos campos de telas em si, poderá haver um popup em cada componente que abrirá uma janela com as configurações e a possibilidade de atualização. Por outro lado, existe um componente que já ouvi falar por aqui na lista, que fazia exatamente isso, inclusive tratava a questão das tabelas e tudo mais. Talvez alguém lembre e seja mais prático pra você usar o componente. Não posto códigos do FindComponent porque estou sem o Delphi aqui agora. Alexandre Em 22 de abril de 2010 08:56, Murilo Cunha mcscu...@yahoo.com.br escreveu: Pessoal, Meu objetivo eh o seguinte: Tenho um form para definir direitos dos usuarios no meu sistema. Quando abre esta tela, vc define qual usuario e qual tela irah configurar os direitos. Suponhamos que vc quer definir os direito para a tela principal do sistema, entao, no lado direito da tela tem um grid que lista todos os nome dos botoes e opcoes de menu para vc definir se aquele usuario pode ou nao ver a opcao, pode acessar o botao adicionar, excluir Estou fazendo desta forma: var frm_Tela : TForm; begin case cbxTelas.ItemIndex of 0: begin if frmPrincipal = nil then frmPrincipal := TfrmPrincipal.Create(Application.MainForm); frm_Tela := frmPrincipal; if frm_Tela = nil then frm_Tela := frm_Tela.Create(Application.MainForm); end; 1: begin if frmPermissoesUsuarios = nil then frmPermissoesUsuarios := TfrmPermissoesUsuarios.Create(Self); frm_Tela := frmPermissoesUsuarios; end; end; ... Vem o codigo para jogar os nomes dos componentes no grid .. finally FreeAndNil(frm_Tela); // -- Aqui ele destroi meu formulario principal, nao tem como eu continuar a trabalhar com o sistema!!! end; Obrigado. MuriloCunha On 20/04/2010 22:18, Alexandre wrote: Desculpa a intromissão mais qual seria o objetivo disso? E como você está fazendo a cópia agora? Depois da sua resposta te digo o que vc deve fazer. Em 20 de abril de 2010 13:46, Murilo Cunhamcscu...@yahoo.com.br mcscunha%40yahoo.com.br escreveu: Pessoal, Como eu posso duplicar um form? O que eu quero é criar o FORM_PRINCIPAL duas vezes. Nesta segunda vez eu crio a tela, MAS SEM EXIBI-LA, e pego todos os nomes de botoes que estao contidos nela. Depois, eu destruo esta copia e continuo usando o sistema. NO ENTANTO, quando destruo esta copia, o meu FORM_PRINCIPAL tb é destruido!!! Como criar uma COPIA INDEPENDENTE?? Obrigado. MuriloCunha [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM -- Nazareno Neto #507685 Desenvolvedor Delphi e Firebird http://www.delphisistemas.com.br nazarenon...@delphisistemas.com.br nazareno.nobr...@gmail.com [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Duplicar FORM
Você já tentou? obj := TFormPrincipal.Create(nil); []s Em 20 de abril de 2010 13:46, Murilo Cunha mcscu...@yahoo.com.br escreveu: Pessoal, Como eu posso duplicar um form? O que eu quero é criar o FORM_PRINCIPAL duas vezes. Nesta segunda vez eu crio a tela, MAS SEM EXIBI-LA, e pego todos os nomes de botoes que estao contidos nela. Depois, eu destruo esta copia e continuo usando o sistema. NO ENTANTO, quando destruo esta copia, o meu FORM_PRINCIPAL tb é destruido!!! Como criar uma COPIA INDEPENDENTE?? Obrigado. MuriloCunha [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: delphi-br-ow...@yahoogrupos.com.br Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: delphi-br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] Duplicar FORM
Desculpa a intromissão mais qual seria o objetivo disso? E como você está fazendo a cópia agora? Depois da sua resposta te digo o que vc deve fazer. Em 20 de abril de 2010 13:46, Murilo Cunha mcscu...@yahoo.com.br escreveu: Pessoal, Como eu posso duplicar um form? O que eu quero é criar o FORM_PRINCIPAL duas vezes. Nesta segunda vez eu crio a tela, MAS SEM EXIBI-LA, e pego todos os nomes de botoes que estao contidos nela. Depois, eu destruo esta copia e continuo usando o sistema. NO ENTANTO, quando destruo esta copia, o meu FORM_PRINCIPAL tb é destruido!!! Como criar uma COPIA INDEPENDENTE?? Obrigado. MuriloCunha [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: delphi-br-ow...@yahoogrupos.com.br Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: delphi-br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html