Maseroli 0 Denunciar post Postado Junho 10, 2009 Boa tarde a todos, Estou eu aqui novamente para pedir socorro a vocês. Estou evoluindo meu sistema na parte de controle de acesso. Tenho uma tabela de loguin e outra de Grupos(são as empresas que ele tem acesso) e Limites(objetos) Quando o usuario loga no sistema, o sistema ver a que grupo ele pertence e verifica os limites. Até os grupos esta tudo funcionando como eu quero, o meu dilema são os limites. Os limites são os objetos que por defalt estarão todos como False. No delhi eu faria frm_nomedoobjeto.enable := false; Agora como colocar isso "frm_nomedoobjeto.enable := false;" no banco para o delphi entender, lembrando que a lista de limites sera imensa. Aqueles que puderem contribuir com dicas e apoio eu agradeço. Att, Mário Sergio Compartilhar este post Link para o post Compartilhar em outros sites
Maseroli 0 Denunciar post Postado Junho 16, 2009 Caros colegas, Consegui resolver meu problema, não sei se foi do geito mais facil e correto, mas esta funcioando como eu esperava. Caso alguem venha a precisar de algo parecido, deixo aqui o codigo que usei. O que ele faz? No item do menu eu cadastro um valor na tag do objeto, em seguida faço um cadastro no banco do Grupo do Usuario, uma breve descrição do menu em seguida o numero da tag do objeto, com isto todos os usuario que estiverem no nete grupo terão acesso ao Menu(botão). E assim que o usuario se loga no sistema, ao entra no formulario principal e testado grupos e limites a que ele pertence e habilita o itens do menu. Simples mas para mim e muito eficiente, atualmente, tenho cerca de 38 usuario acessando minha aplicação local e remotamente. Obrigado a todos. procedure TfrmPrincipal.FormCreate(Sender: TObject); Var mtag, mpos : Integer; begin With ADQ_TGMenu do Begin Close; SQL.Clear; SQL.Add('SELECT * FROM tbl_LoguinTGMenu'); SQL.Add('WHERE CODGRUPO = :pNIVEL'); SQL.Add('ORDER BY CODGRUPO, DESCRICAO'); Parameters.ParamByName('pNIVEL').Value := NivelUser; Open; End; mpos := 0; While mpos <= ComponentCount-1 Do Begin If Components[mpos] is TMenuItem then Begin mtag := TMenuItem(Components[mpos]).Tag; If mtag > 0 Then Begin If ADQ_TGMenu.Locate('flag',mtag,[loCaseInsensitive]) Then Begin TMenuItem(Components[mpos]).visible := TMenuItem(Components[mpos]).Enabled; End Else TMenuItem(Components[mpos]).visible := False; End; End; Inc(mpos); End; ADQ_TGMenu.Close; end; Compartilhar este post Link para o post Compartilhar em outros sites