Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Como personalizar el puntero (https://www.clubdelphi.com/foros/showthread.php?t=56107)

Negriz 07-05-2008 19:45:34

Como personalizar el puntero
 
ok. la pregunta es como cambiar el cursor de un formulario o un boton o lo que sea???
encontre algo pero era con un *.res...
que la verdad no me queda muy claro.

si alguien conoce otro metodo o una manera de explicar lo del *.res me ayudaria mucho.

gracias.

saludos desde colombia.... El Negriz

roman 07-05-2008 19:59:41

1. Creas un archivo de recursos cursores.res con el ImageEditor de Delphi

2. Le agregas un cursor con File|New|Cursor y le pones un nombre adecuado, digamos MICURSOR (así, en mayúsculas)

2.5 Dibujas el cursor (o le pegas una imagen)

3. Indicas el punto sensible (hot spot) del cursor con Cursor|Set HotSpot

4. En la unidad de tu formulario principal añades
Código Delphi [-]
{$R cursores.res}
para agregar el archivo de recursos

5. En el OnCreate del formulario pones

Código Delphi [-]
const
  crMiCursor = 1;

Screen.Cursors[crMiCursor] := LoadCursor(HInstance, 'MICURSOR');
Button1.Cursor := crMiCursor;

La segunda pregunta hazla en otro hilo.

// Saludos

escafandra 08-05-2008 00:23:13

roman te lo ha explicado brillantemente.

Además ten en cuenta que los controles tienen una propiedad llamada Cursor que te modifica el cursor que aparecerá al colocar el ratón sobre ese control.

Si quieres que el cursor sea "general" en todos los controles y en un momento dado, puedes usar la API:

Código:

  HCURSOR C = ::GetCursor; // Salvas tu cursor original
  . // Codigo.....
  .
  . 
  ::SetCursor(LoadCursor(0, IDC_APPSTARTING)); // Cambias tu cursor... (IDC_APPSTARTING es un cursor predefinido de Windows...)
  . // Codigo.....
  .
  ::SetCursor(C);  // Restauras tu antiguo cursor

LoadCursor Te sirve para cargar cursores por defecto de Windows o los que tu crees según te explicó roman. En C sería así:
Código:

::SetCursor(LoadCursor(HInstance, MAKEINTRESOURCE(MI_CURSOR))); // Siendo MI_CURSOR el ID del cursor en cursores.res
En C un archivo de recursos lo incluyes asi:

Código:

#pragma resource "Cursores.res"

Saludos.

Negriz 08-05-2008 16:20:19

Listo ya entiendo lo del *.res... pero no hay una manera de agregar al mismo un cursor que ya este hecho...
por que puedo abrir los *.cur que tengo con el editor de imagenes del c++ builder 6, pero la calidad se pierde o no los carga correctamente.

mmmm, no hay una manera de no usar el *.res????

escafandra 08-05-2008 22:59:49

Si lo que pretendes es usar un cursor de los standard predefinidos de Windows, la forma es como te apunté como ejemplo:
Código:

::SetCursor(LoadCursor(0, IDC_APPSTARTING));
Este es el cursor que tiene un reloj de arena pequeñito...

Si lo que quieres es añadir un cursor de un archivo *.cur, lo suyo es añadirlo al archivo de recursos.res y usarlo como también te hemos dicho.

Para crear un archivo de recursos debes utilizar el programa Resource Workshop que viene con Builder y delphi. Creas un proyecto res y en el añades un icono donde pegas la imagen del icono que tienes en un archivo.res.

Puedes creare iconos con distintas resoluciones y número de colores (por aquello de la calidad)

Saludos.

Negriz 08-05-2008 23:19:49

Cita:

Empezado por escafandra (Mensaje 285388)
Si lo que pretendes es usar un cursor de los standard predefinidos de Windows, la forma es como te apunté como ejemplo:
Código:

::SetCursor(LoadCursor(0, IDC_APPSTARTING));
Este es el cursor que tiene un reloj de arena pequeñito...

Si lo que quieres es añadir un cursor de un archivo *.cur, lo suyo es añadirlo al archivo de recursos.res y usarlo como también te hemos dicho.

Para crear un archivo de recursos debes utilizar el programa Resource Workshop que viene con Builder y delphi. Creas un proyecto res y en el añades un icono donde pegas la imagen del icono que tienes en un archivo.res.

Puedes creare iconos con distintas resoluciones y número de colores (por aquello de la calidad)

Saludos.

eso es, creo que la pregunta original seria.
¿como agrego un *.cur a un *.res?

bueno entonces creo un *.res con el editor de imagenes y despues con el Resource Workshop agrego mis cursores al *.res y no se pierde calidad ni nada de eso.

y los nombres deben estar en mayuscula??

escafandra 09-05-2008 00:18:38

No exactamente. Con cualquiera de los dos programas puedes crear el res con el cursor. La calidad será similar. Con el Resource Workshop puedes editar imágenes directamente, aunque sus herramientas de dibujo son mas rudimentarias... Sin embargo Resource Workshop está pensado para crear mas recursos, no sólo de imagen. Diálogos, menús, iconos, Fuentes, StringTables...

Los nombres de los ID suelen ponerse en mayúsculas por convención. Realmente equivalen a etiquetas a enteros y están definidos en el propio archivo de recursos.

Saludos.

Negriz 09-05-2008 18:18:32

Cita:

Empezado por escafandra (Mensaje 285427)
No exactamente. Con cualquiera de los dos programas puedes crear el res con el cursor. La calidad será similar. Con el Resource Workshop puedes editar imágenes directamente, aunque sus herramientas de dibujo son mas rudimentarias... Sin embargo Resource Workshop está pensado para crear mas recursos, no sólo de imagen. Diálogos, menús, iconos, Fuentes, StringTables...

Los nombres de los ID suelen ponerse en mayúsculas por convención. Realmente equivalen a etiquetas a enteros y están definidos en el propio archivo de recursos.

Saludos.

ya entiendo.

El codigo delphi es bastante parecido al de c++ builder no???

Muchas gracias.


La franja horaria es GMT +2. Ahora son las 22:43:19.

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