Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-02-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Problemas con el cursor del ratón

No sé por qué pero a veces el cursor del ratón se queda invisible en el formulario activo y por lo tanto es complicado saber dónde demonios se está.

En principio esto me ocurría en un formulario que tenía algunos TComboBox, y siguiendo una sugerencia hecha en otro foro, los he reemplazado pero da lo mismo. Ahora mo lo hace igual pero sólo en un TCheckListBox y sólo al marcar una primera casilla; si se marca una segunda, ya sea con el teclado o adivinando dónde está el ratón, se vuelve a mostrar y ya no se oculta. ¿Hay alguna forma de hacer que dicho cursor sea siempre visible? Salvo, claro está, que se le oculte exprofeso.
Responder Con Cita
  #2  
Antiguo 08-02-2017
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.265
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Si no lo has cambiado tu, ¿puede ser que algún componente de terceros te lo esté "tocando"?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 08-02-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Si no lo has cambiado tu, ¿puede ser que algún componente de terceros te lo esté "tocando"?
No uso ningún componente ajeno a Borland.
Responder Con Cita
  #4  
Antiguo 08-02-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Al ser un comportamiento errático es bastante difícil encontrar la parte en que se produce y sin conocer el código, ciertamente es aventurar la respuesta.

Pero, para verificar si algún componente (o línea de código) está ocultando el cursor, intentá usando la función ShowCursor, cuando desaparezca:
Código PHP:
void __fastcall TForm1::btShowCursorClickTObject *Sender )
{
  
ShowCursortrue );

Si de ese modo se visualiza el cursor nuevamente, un parche podría ser:
.h
Código PHP:
...
class 
TForm1 : public TForm
{
  ...
private:    
// User declarations
  
void __fastcall AppMessagetagMSG &msgbool &Handled );
... 
.cpp
Código PHP:
#define CURSOR_HIDDEN 0

void __fastcall TForm1::AppMessagetagMSG &msgbool &Handled )
{
  
CURSORINFO ci = { };

  
GetCursorInfo( &ci );

  if ( 
ci.flags == CURSOR_HIDDEN 
    
ShowCursortrue );
}

void __fastcall TForm1::FormCreate(TObject *Sender)
{
  ...
  
Application->OnMessage AppMessage;
}
... 
No es una solución óptima, pero sin poder acceder al código es lo que se me ocurre...

Saludos

Pd: Me olvidaba, cuando sucede ¿ Revisaste si se está insertando algún dispositivo físico que pudiera estar suprimiendo el cursor ?
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 08-02-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Muchísimas gracioas por tu respuesta.
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Al ser un comportamiento errático es bastante difícil encontrar la parte en que se produce y sin conocer el código, ciertamente es aventurar la respuesta.

Pero, para verificar si algún componente (o línea de código) está ocultando el cursor, intentá usando la función ShowCursor, cuando desaparezca:
Código PHP:
void __fastcall TForm1::btShowCursorClickTObject *Sender )
{
  
ShowCursortrue );

No conocía esta función. La he puesto; no sé si es por ella o por haber cambiado la presentación del CheckListBox lo ciertoe s que ahora no se oculta el cursor. Soy el primer sorprendido con el comportamiento del ratón, pero parece que de alguna forma se ha resuelto.
Cita:
Empezado por ecfisa Ver Mensaje
Pd: Me olvidaba, cuando sucede ¿ Revisaste si se está insertando algún dispositivo físico que pudiera estar suprimiendo el cursor ?
Ocurría cuando hacía click por primera vez en alguna de las casillas de verificación.
Responder Con Cita
  #6  
Antiguo 11-02-2017
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 11
aguml Va por buen camino
Pero eso no es una solución, es un parche.
Podrías poner un BP en la línea donde se llama a ShowCursor y seguir con f7 a ver donde sales.
También podrías abrirlo en un depurador cómo Ollydbg y poner un BP condicional por ejemplo en TranslateMessage con el mensaje usado para ocultar el cursor que creo seria WM_SETCURSOR y a partir de ahí tracear y ver desde donde fue enviado ese mensaje.
Es algo más complejo que un parche pero es mejor solución si el problema lo está creando tu código ya que encontrarás el fallo y podrás corregirlo sin necesidad de parchear nada.
Responder Con Cita
  #7  
Antiguo 11-02-2017
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 11
aguml Va por buen camino
¿Seguro que no llamas en tu código a SetCursor? Si lo llamas sin parámetro o con un parámetro inválido el cursor desaparece.
Mira aqui: https://msdn.microsoft.com/es-es/lib...(v=vs.85).aspx
Responder Con Cita
  #8  
Antiguo 11-02-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Completamente seguro.
Responder Con Cita
  #9  
Antiguo 11-02-2017
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 11
aguml Va por buen camino
Puedes subir el binario sin el parche para ver donde falla exactamente? A ser posible con información de depuración para poder seguir mejor en el depurador.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Modificar Cursor Raton NEG1414 C++ Builder 2 13-03-2011 19:36:31
Cambiar cursor del raton en tiempo ejecucion NEG1414 C++ Builder 6 03-03-2011 21:32:37
TImageList & cursor raton gallipi Varios 2 06-06-2008 15:09:14
Problemas con un cursor personalizado Damisela OOP 2 21-01-2004 15:28:05
Problemas con Cursor Mauricio Correa SQL 2 07-10-2003 07:08:45


La franja horaria es GMT +2. Ahora son las 13:08:41.


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