Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #9  
Antiguo 20-10-2010
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.025
Poder: 28
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Question

Cita:
Empezado por mcs Ver Mensaje
Dónde está el problema en usar un timer para leer las coordenadas del mouse?
Pues, precisamente, en que el timer puede "activarse" fuera de contexto (que es lo que sospecho que le pasa a nuestro compañero LuisAlf:. No se puede garantizar que las interrupciones se produzcan en un momento determinado: se producirán cuando se produzcan y ya está.

Un ejemplo práctico es el procedimiento "Sleep". Tú le puedes decir que duerma durante 100 milisegundos, pero nada garantiza que exactamente 100 milisegundos después el sistema devuelva el control al programa. No sé cómo implementa los timer Delphi (supongo que usando MSG_TIMER del API, y posiblemente con un hilo [fork] paralelo) pero las posibilidades de que pase lo mismo son importantes. No olvidemos, tampoco, que Windows no es un sistema operativo de "tiempo real", como sí lo es MS-DOS, por ejemplo.

Si se quiere utilizar un timer, habrá de asegurarse de eliminarlo antes de que se salga del contexto, o al menos evitar que funcione si está fuera de él. Se me ocurre que antes de obtener las coordenadas del ratón, quizá se pueda comprobar si el objeto "mouse" o el contenedor del mismo sigue existiendo. Algo así como:
Código Delphi [-]
  IF mouse <> NIL THEN
  BEGIN
     CoordenadaX := mouse.curPos.x;
  END;

O quizá usar "SELF" o "Application" en lugar de "mouse".

<-- Evitar doble post -->

Cita:
Empezado por LuisAlf:: Ver Mensaje
Jajajaja....pues a mi..claro!!!

Mira exacto!!! No hay ningun problema al utilizar un timer para este objetivo, ya que es un procedimiento que se llama cada determinado tiempo y es exactamente lo que tu me planteaste un procedimiento que lee las posiciones del cursor...cada cierto tiempo...


Esto ya lo habia contemplado, ya que un amigo me dijo algo de manejo de la excepcion... para encapsular el error y si...por hay fue mi solucion, yo batallando con la suspension de la sesion...jajaja mal enfoque del problema

Asi es lo que hice ayer fue eso, manipule el evento manejador de excepciones
Código Delphi [-]
 private
    { Private declarations }
    procedure TratarExcepciones (sender: tObject; e : Exception);
....

procedure TForm1.FormCreate(Sender: TObject);
begin
...
                    Application.OnException := TratarExcepciones;
.....
end;
creando un procedimento de tipo object, y que creen lo que puse en el procedure...
pues "nada"
jajaja
Código Delphi [-]
procedure tForm1.TratarExcepciones (sender: tObject; e:Exception);
begin
//NADADENADA
 end;
Dejenme explicarme, lo que pasa es que puse un showmessage en el procedimento para ver si encapsulaba el error que me mostraba windows y si efectivamente el showmessage se muestra en lugar de las otras ventanas del error que el propio windows me mostraba...

Y como yo no quiero que muestre ningun mensaje pues le quite el showmessage... de esta forma el error no se muestra y la aplicacion sola se estabiliza, trabajando correctamente despues de restaurada la sesion....

No se si sea la forma mas ortodoxa de solucionarlo pero funciona....
No se me había ocurrido esta solución.

Aunque funcionar, funcionar... El problema aquí es que si se produce otro error, entonces no te enterarás... Quizá sea buena idea dejar constancia de los errores en algún sitio, como por ejemplo en un archivo de disco, por si las moscas.
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
Mensaje Inicio Sesion windows XP cacu Windows 3 19-02-2009 16:57:31
Obtener id de la Sesion de Windows pedrnsanmar API de Windows 4 13-05-2008 16:32:11
Bloqueo de sesión Windows XP Val API de Windows 2 11-10-2007 08:23:10
Cerrar sesion Windows XP Caral Windows 9 19-09-2006 00:42:34
Sesion (de Windows) Oculta Jose_Pérez Redes 1 25-06-2005 16:43:08


La franja horaria es GMT +2. Ahora son las 14:37:29.


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