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.com>escreveu:

> 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 Cunha<mcscu...@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]

Responder a