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::btShowCursorClick( TObject *Sender )
{
ShowCursor( true );
}
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 AppMessage( tagMSG &msg, bool &Handled );
...
.cpp
Código PHP:
#define CURSOR_HIDDEN 0
void __fastcall TForm1::AppMessage( tagMSG &msg, bool &Handled )
{
CURSORINFO ci = { 0 };
GetCursorInfo( &ci );
if ( ci.flags == CURSOR_HIDDEN )
ShowCursor( true );
}
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 ?