_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Vie 31 Ene, 2003 12:24 pm Asunto: |
|
|
Tienes la función del API SetSystemCursor.
Un pequeño ejemplo. Añadimos un botón al Form y el siguiente código en el OnClick del mismo:
Importante antes que nada para que las macros OCR_... se incluyan debes poner #define OEMRESOURCE antes del #include<vcl.h> al principio del modulo o bien en vez de ponerlo ahí ya que eso afectaria a como se crean las cabeceras precompiladas lo ponemos en las opciones de proyecto (MENU: Project | Options... | Pestaña:Directories/Conditionals | Edit:Conditionals Defines)
// Guardamos una copia del cursor original
HCURSOR hCursorOriginal = CopyCursor(Screen->Cursors[crArrow]);
// Sustituimos el cursor normal del sistema por el crHourGlass
HCURSOR hCursor = CopyCursor(Screen->Cursors[crHourGlass]);
SetSystemCursor(hCursor, OCR_NORMAL);
// Mostramos para todo el sistema el
// cursor modificado durante 5 segundos
Sleep(5000);
// Restauramos el cursor original
SetSystemCursor(hCursorOriginal, OCR_NORMAL);
¡Ojo! realmente lo que hace esta función es sustituir el cursor según la macro OCR_... como si lo hiciesemos desde el panel de control. Mirar con atención la referencia del API.
Otro detalle, es que el ejemplo cambia solo el cursor por defecto, pero tendriamos que cambiar el cursor en todos los estados (OCR_...) si queremos que el cursors se quede fijo con el mismo dibujo pasemos por donde pasemos. |
|