Re: [delphi-br] Duplicar FORM

2010-04-22 Por tôpico Suélio Santos
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

2010-04-22 Por tôpico Murilo Cunha
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

2010-04-22 Por tôpico Alexandre
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

2010-04-22 Por tôpico Murilo Cunha
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

2010-04-22 Por tôpico Nazareno Neto
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

2010-04-21 Por tôpico Leandro Augusto Soares
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

2010-04-20 Por tôpico Alexandre
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