Delphi - Cursores propios y crHandCursor

 
Vista:

Cursores propios y crHandCursor

Publicado por M@rceloL (9 intervenciones) el 13/12/2006 17:49:44
Hola gente.

¿Alguien sabe cómo hacer para que se muestre el cursor de "mano apuntando" en un control?

Porque poniendo la propiedad Cursor en crHandPoint, muestra una manito propia de Delphi y no la definida por el usuario en su instalación de Windows.

¿Alguna idea?

Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cursores propios y crHandCursor

Publicado por BigLuis (713 intervenciones) el 13/12/2006 20:31:05
Siempre puedes crear un archivo de recursos *.res con los cursores que quieras, cargarlos al iniciar la aplicacion y utlizarlos cuando te convenga.
Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cursores propios y crHandCursor

Publicado por M@rceloL (213 intervenciones) el 15/12/2006 17:50:37
Claro, el problema es que lo que yo quiero es que al usuario le aparezca el cursor que él definió en su propio sistema. ¿Alguna forma de cargar esto con la API?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cursores propios y crHandCursor

Publicado por BigLuis (713 intervenciones) el 17/12/2006 15:32:59
Creo entenderte que el usuario debe poder escoger el cursor que el quiera, de entre unos cuantos que tu o el mismo posee ¿es asi?. Si es asi prueba esto
Todo esta probado y a i me funciona.

{$R *.DFM}
//declaras el cursor con el nombre que quieras y un numero mayor que 1
const
crCopia = 5;

//******************************************************************************
procedure TForm1.FormCreate(Sender: TObject);
begin
//la cosa esta clara

CargaCursores(sender);
end;

//******************************************************************************
{Este procedimiento es de proposito general y te sirve para que el usuario escoja un cursor que tenga en un fiochero o en un archivo de recursos. Yo he anulado la parte de los recursos para que el usuario pueda elegir el fichero.}

Procedure TForm1.CargaCursores(Sender:TObject);
var
lpTempDir, lpTempFileName : string;
//nBufferLength : DWORD;
begin
// Obtener el directorio temporal de Windows
{
SetLength(lpTempDir, 255);
nBufferLength := GetTempPath(255, @lpTempDir[1]);
SetLength(lpTempDir, nBufferLength);

// Obtener el nombre de un fichero temporal
SetLength(lpTempFileName, 255);
GetTempFileName(PChar(lpTempDir), PChar('RES'), 0, @lpTempFileName[1]);

// Establecer correctamente la extensión del un fichero
// de cursor animado.
lpTempFileName := ChangeFileExt(lpTempFileName, '.ani');
}
//Este cursor es uno que he pillado por el disco duro
lpTempFileName :='JvResRAHANDMOVE.cur';
{ Cargar los cursores animados de los recursos de la aplicacion.
Observe que aquí, usamos el mismo nombre del recurso que
establecimos en el fichero Cures1.RC }

// Establecer el cursor en el panel izquierdo
// Primero se lee el fichero del cursor de los recursos de la aplicacion
// luego se salva a un fichero temporal
// Ahora se carga el fichero del cursor en el arreglo de cursores
// del objeto Screen y se asigna al control sobre el que debe
// aparecer cuando pase sobre el mismo.

{
with TResourceStream.Create(HInstance, 'COPIA', RT_RCDATA) do
try
SaveToFile( lpTempFileName );
finally
Free;
end;
}
Screen.Cursors[crCopia] := LoadCursorFromFile( PChar(lpTempFileName));
//DeleteFile(lpTempFileName);
end;

//******************************************************************************

Suerte y feliz navidad.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cursores propios y crHandCursor

Publicado por M@rceloL (213 intervenciones) el 22/12/2006 22:17:14
Bueno, no era eso ¡PERO GRACIAS! Lo que quería era que mis ejecutables Delphi fueran capaces de carcar el cursor "de manito" que está predefinido en el sistema, ya que el crHadPoint no es el predefinido del sistema, sino uno que viene con Delphi.

Igual logré solucionar el problema, igual, gracias por el trabajo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar