Ver Mensaje Individual
  #25  
Antiguo 21-09-2006
JuanPa1 JuanPa1 is offline
Miembro
 
Registrado: may 2006
Posts: 66
Reputación: 18
JuanPa1 Va por buen camino
TMsg

Hola, tengo una interrogante. El tipo TMsg es de delphi y que hace?? hay un tipo equivalente en visual basic o algun componente que me permita hecer lo mismo en visual basic??
Cualquier sugerencia o respuesta a mi pregunta gracias de antemano
Saludos..

Cita:
Empezado por andres1569
Hola:

Puedes colocar un componente TApplicationEvents, interceptar el evento OnIdle y ahí almacenas en una variable de tipo Longint el instante mediante GetTickCount. Colocas un TTimer con un Interval no muy pequeño, puesto que debe controlar minutos supongo (p.e. Interval = 60000), y ahí compruebas si ha trnscurrido el máximo tiempo de inactividad, algo así:

Código:
var
  UltimoAcceso : Longint;

procedure TFormPrincipal.ApplicationEvents1OnIdle (Sender: TObject;
  var Done: Boolean);
begin
  UltimoAcceso := GetTickCount;
  Done := TRUE;
end;

procedure Timer1OnTimer (Sender: TObject)
begin
  if GetTickCount - UltimoAcceso > 3600000 then // 60 minutos
    Database1.Connected := FALSE;
end;
Si manejas un Delphi 4.0 o menor, no exite el componente TApplicationEvents, tienes que hacerlo "a mano":

Código:
procedure TFormPrincipal.AppMessage (var Msg:TMsg; var Handled:Boolean);
begin
  // interceptamos eventos de teclado y ratón
  if (Msg.message in [WM_KEYFIRST .. WM_KEYLAST]) OR
     (Msg.message in [WM_MOUSEFIRST .. WM_MOUSELAST]) then
    UltimoAcceso := GetTickCount;
end;

procedure TFormPrincipal.FormCreate(Sender: TObject);
begin
  Application.OnMessage := AppMessage;
  UltimoAcceso := GetTickCount; 
end;
A ver si esto te sirve

Un saludo
Responder Con Cita