Cita:
Empezado por amadis
El codigo funciona demasiado bien. Desactiva todo todo.
Por mas que el nivel de usuario sea mayor que el tag igual lo desactiva todo.
|
Debe ser por que consideré dar el mayor acceso en forma decreciente, si lo haces corresponder de forma directa (mayor valor = mayor acceso), basta con cambiar el condicional '<' por '>' en la función
SetLevelAccess:
Código Delphi
[-]
...
if GetOrdProp(Components[i], 'Tag') > UserAccessLevel then
SetOrdProp(Components[i], 'Enabled', Integer(False))
...
Te adjunto un demo que incluye varios edits, panel con checkbox, mainmenu, popupmenu, etc, para que puedas evaluarlo con mas comodidad.
Nota: Agregue una línea a la función
SetLevelAccess para restaurar componentes desactivados ya que el acceso se fija dinámicamente mediante un SpinEdit.
Saludos.