controle de menu
boa tarde amigos so meio iniciante ainda em delphi e to com uma duvida q nao consigo resolver de geito nenhum....
e o seguinte
estou criando um sitema de comercio onde tenho um formulario principal um formulario de Acesso onde esse Acesso vem de Usuarios= vendedores onde vao acessar o sistema ate ai esta tudo bem
fiz uma tabela detalhe para q seja detalhe da tabela vendedor essa tabela e uma tabela chamada perfil de usuarios onde ela eu tenho os campos
(Nome) onde esse nome eu pego todas as acoes q estao dentro de um ActionManager ligado a um ActionMaiMenuBar e um campo (Permissao) onde onde vao ficar os Valores S ou N referente ao nome da acao do menu ate ai consegui fazer o codigo q é o seguinte;
var
i: integer;
begin
for i:=1 to pred (fprincipal.acao.ActionCount) do
begin
with datasource3.DataSet do
begin
append;
FieldByName (´nome´).AsString:= (fprincipal.acao.Actions[i].Name);
FieldByName (´permissao´).AsString:= ´F´;
post;
aki carrego valores da acao e ponho tudo pra F para aparecer tudo desabilitado
gostaria de saber como faço no formulario princiapal ele verificar na tabela perfil a ação pelo nome e se o campo permissao estiver em F ele desabilitar aquela ação dentro do actionManager e no caso se For S ele deixar Habilitado isso nao to conseguindo implementar
logo de Antemao nao quero usar o tal Componente UserControl queria saber o codigo ou alguma ideia posso ate usar user control mas assim nunca vo ser um progrador de verdade ja q estou em faze de iniciamento ainda
agradeço a qualquer atenção
e o seguinte
estou criando um sitema de comercio onde tenho um formulario principal um formulario de Acesso onde esse Acesso vem de Usuarios= vendedores onde vao acessar o sistema ate ai esta tudo bem
fiz uma tabela detalhe para q seja detalhe da tabela vendedor essa tabela e uma tabela chamada perfil de usuarios onde ela eu tenho os campos
(Nome) onde esse nome eu pego todas as acoes q estao dentro de um ActionManager ligado a um ActionMaiMenuBar e um campo (Permissao) onde onde vao ficar os Valores S ou N referente ao nome da acao do menu ate ai consegui fazer o codigo q é o seguinte;
var
i: integer;
begin
for i:=1 to pred (fprincipal.acao.ActionCount) do
begin
with datasource3.DataSet do
begin
append;
FieldByName (´nome´).AsString:= (fprincipal.acao.Actions[i].Name);
FieldByName (´permissao´).AsString:= ´F´;
post;
aki carrego valores da acao e ponho tudo pra F para aparecer tudo desabilitado
gostaria de saber como faço no formulario princiapal ele verificar na tabela perfil a ação pelo nome e se o campo permissao estiver em F ele desabilitar aquela ação dentro do actionManager e no caso se For S ele deixar Habilitado isso nao to conseguindo implementar
logo de Antemao nao quero usar o tal Componente UserControl queria saber o codigo ou alguma ideia posso ate usar user control mas assim nunca vo ser um progrador de verdade ja q estou em faze de iniciamento ainda
agradeço a qualquer atenção
Keliniciante
Curtidas 0
Respostas
Facc
20/08/2009
pelo que eu entendi vc quer um controle do que o usuário pode ou não pode acessar. Se for isso, aconselho usar o UserControl, ele faz tudo isso e muito mais e o melhor, é FREE!
O site do componente [url]www.usercontrol.net[/url]
O site do componente [url]www.usercontrol.net[/url]
GOSTEI 0
Keliniciante
20/08/2009
no final o texto ta escrito q eu nao quero usar o componente user control amigo
GOSTEI 0
Facc
20/08/2009
então vc quer reinventar a roda...
[url]http://www.linhadecodigo.com.br/Artigo.aspx?id=822[/url]
tem um outro componente, mas te dou uma dica... opte por soluções que facilitam sua vida.
[url]http://www.linhadecodigo.com.br/Artigo.aspx?id=822[/url]
tem um outro componente, mas te dou uma dica... opte por soluções que facilitam sua vida.
GOSTEI 0
Keliniciante
20/08/2009
pelo meu projeto ja ter cadastro de usuarios q sao os Vendedores do sistema q ja estao ligados ao contas a Pagar no sistema entre mestre e detalhe entao se eu for usar o user control eu vo ter que desmanchar coisas q ja estao pronta ai fica mais complicado etendeu amigo
GOSTEI 0
Martins
20/08/2009
no final o texto ta escrito q eu nao quero usar o componente user control amigo
Como está seu código?
vc poderia acrescentar a ele algo como:
ActionManager1.Action4.Enabled:= False;
Não testei esse código, mas é uma idéia e vc poderia ver o que consegue.
Qualquer coisa, retorne aqui.
Boa sorte e bons códigos.
GOSTEI 0
Martins
20/08/2009
no final o texto ta escrito q eu nao quero usar o componente user control amigo
Como está seu código?
vc poderia acrescentar a ele algo como:
ActionManager1.Action4.Enabled:= False;
Não testei esse código, mas é uma idéia e vc poderia ver o que consegue.
Qualquer coisa, retorne aqui.
Boa sorte e bons códigos.
GOSTEI 0
Osocram
20/08/2009
Olha.. eu ja fiz algo parecido a algum tempo atras.
Fiz uma tela de segurança no meu sistema....
Dae por exemplo fiz uma rotina que trazia todas as telas abertas do sistema, dae eu verificava se tinha ou não no meu segurança... e perguntava se o usuario queria cadastrar ou atualizar.
Ao selecionar o formulario tinha uma funçao que pegava todos os TActionList do form (pegava o Nome, Caption); geralmente o caption era p facilicar a vida do usuario p saber qual action era aquilo.. então sempre deixava caption ´entendivel´.
Dae no evento ONUpdate do ActionList eu disparava uma função que fazia um select no banco trazendo aquele tela, os action e eu setava .enable true ou false.
Não sei se ficou claro.
Tbm não sei se respondi a sua pergunta.
Ja adiantando essas rotias eu perdi numa formatação
:(
Incluisive iria precisar dele p um projeto novo.. e vou ter q refazer novamente
Fiz uma tela de segurança no meu sistema....
Dae por exemplo fiz uma rotina que trazia todas as telas abertas do sistema, dae eu verificava se tinha ou não no meu segurança... e perguntava se o usuario queria cadastrar ou atualizar.
Ao selecionar o formulario tinha uma funçao que pegava todos os TActionList do form (pegava o Nome, Caption); geralmente o caption era p facilicar a vida do usuario p saber qual action era aquilo.. então sempre deixava caption ´entendivel´.
Dae no evento ONUpdate do ActionList eu disparava uma função que fazia um select no banco trazendo aquele tela, os action e eu setava .enable true ou false.
Não sei se ficou claro.
Tbm não sei se respondi a sua pergunta.
Ja adiantando essas rotias eu perdi numa formatação
:(
Incluisive iria precisar dele p um projeto novo.. e vou ter q refazer novamente
GOSTEI 0
Keliniciante
20/08/2009
OPA PESSOA MUITAS VEZES REPOSTAS TEORICAS AJUDAM BASTATE MAS MUITAS DAS VEZES NAO SE RESOLVE
O Q SE RESOLVE DE VERDADE E CODIGO DENTRO DA LOGICA EM QUE VALE A PERGUNTA
DEPOIS DE MUITO QUEBRAR A CABEÇA ESTA AKI
dataset.first;
while not dataset.eof do begin
TAction(FindComponent( dataset.FieldByName(´nome´).AsString )).enabled := (dataset.FieldByName(´nome´).AsString = ´V´);
dataset.next;
NO ONSHOW DO FORMULARIO FAZ COM Q BLOQUEIE ACOES Q NAO ESTEJAM COM V NO CASO O F
MESMO ASSIM VALEU A ATENÇÃO DE VOCES
O Q SE RESOLVE DE VERDADE E CODIGO DENTRO DA LOGICA EM QUE VALE A PERGUNTA
DEPOIS DE MUITO QUEBRAR A CABEÇA ESTA AKI
dataset.first;
while not dataset.eof do begin
TAction(FindComponent( dataset.FieldByName(´nome´).AsString )).enabled := (dataset.FieldByName(´nome´).AsString = ´V´);
dataset.next;
NO ONSHOW DO FORMULARIO FAZ COM Q BLOQUEIE ACOES Q NAO ESTEJAM COM V NO CASO O F
MESMO ASSIM VALEU A ATENÇÃO DE VOCES
GOSTEI 0
Fabiojt
20/08/2009
Fiz algo parecido usando o logida da video aula do Rodrigo Carreiro, https://www.devmedia.com.br/cursos/listcurso.asp?curso=117 (Sistema de login e permissão)
GOSTEI 0