Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #9  
Antiguo 22-07-2021
amadis amadis is offline
Miembro
 
Registrado: may 2005
Ubicación: San José, Colón, Entre Ríos, Argentina
Posts: 315
Poder: 20
amadis Va por buen camino
EUREKA dijo Arquimedes

En contra de lo que hace unos minutos afirmaba, en realidad si había un código mio que activaba todos los timer de todos los forms.

Y era un procedimiento que utilizo para Activar o Desactivar funciones se acuerdo al usuario logueado al sistema.
Y lo que hace el procedimiento es dar ENABLED TRUE, a los componentes de acuerdo a su TAG, y al valor asignado al usuario.

Y por si no me había dado cuenta los TIMER son un componente mas aunque invisibles... y también los estaba activando

Aquí debajo dejo el procedimiento que causaba el misterio. Alguna vez lo tomé de un hilo de aqui sobre control de usuarios. Así que si alguien más usa esta forma de control deberá prestar atención a los timer.

Código Delphi [-]
procedure NivelAcceso(aForm: TForm; const UserAccessLevel: Integer);
var
  PInfo  : PPropInfo;
  i, vTag: Integer;
begin
  with aForm do
  begin
    for i := 0 to ComponentCount - 1 do
    begin      
          if (GetPropInfo(Components[i].ClassInfo, 'Enabled') <> nil) and
             (GetPropInfo(Components[i].ClassInfo, 'Tag') <> nil)
             then
                begin
                  if GetOrdProp(Components[i], 'Tag') > UserAccessLevel
                   then SetOrdProp(Components[i], 'Enabled', Integer(False))

                  else
                    SetOrdProp(Components[i], 'Enabled', Integer(True));
                end;
    end;
  end;
end;

Lo solucioné agregando el CLASSNAME del componente así.


Código Delphi [-]
procedure NivelAcceso(aForm: TForm; const UserAccessLevel: Integer);
var
  PInfo  : PPropInfo;
  i, vTag: Integer;
begin
  with aForm do
  begin
    for i := 0 to ComponentCount - 1 do
    begin
       if Components[i].ClassName <> 'TTimer'
       then
        begin
          if (GetPropInfo(Components[i].ClassInfo, 'Enabled') <> nil) and
             (GetPropInfo(Components[i].ClassInfo, 'Tag') <> nil)
             then
                begin
                  if GetOrdProp(Components[i], 'Tag') > UserAccessLevel
                   then SetOrdProp(Components[i], 'Enabled', Integer(False))

                  else
                    SetOrdProp(Components[i], 'Enabled', Integer(True));
                end;
        end;
    end;
  end;
end;
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Evitar programas que revelan passwords y activan botones. rhino0nt API de Windows 3 07-06-2010 11:37:07
Al abrir proyecto, hay forms que se crean solos defcon1_es Varios 12 20-11-2009 12:40:17
Numeros Float...cambian solos BlueSteel Varios 1 05-07-2007 22:43:58
no se activan iconos del toolbox en webforms aspx JuanErasmo .NET 0 11-01-2007 22:17:02
Cuando Activan la Pagina de Cadetill???? AGAG4 Varios 2 26-11-2004 21:23:51


La franja horaria es GMT +2. Ahora son las 05:28:08.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi