FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Como cargar cursor desde archivo ( RESUELTO )
Posts: 625
Joined: Wed Mar 14, 2007 06:49 PM
Como cargar cursor desde archivo ( RESUELTO )
Posted: Mon Mar 14, 2022 03:02 AM
Saludos a toda la comunidad:

He estado fuera de actividades por un tiempo pero no dejo de hacer practicas con pequeños proyectos, y por supuesto revisando las novedades en el foro.

Esta vez les solicito su ayuda ya que estoy intentando cambiar recursos en un dialogo, en especial el cursor del dialogo pero no doy como hacerlo ya que tengo lo siguiente:

Code (fw): Select all Collapse
Function Prueba()

local oDlg, oCur, oBtn, cFile, nHCur

define cursor oCur resource "00"
define dialog oDlg title "Probando Cursor"
@ 10, 10 BTNBMP oBtn PROMPT "&Cursor"  RESOURCE "BTN_CUR"   SIZE 32, 32 Pixel OF oDlg 2007

oDlg:oCursor:= oCur
oBtn:bAction:= { ||  cFile:= cGetFile( "Cursor (*.cur) | *.cur", "Seleccionar Recurso", 0, HB_CurDrive() + ":\" + CurDir(), .F., .T. ), nHCur:= loadcursor(, cFile ), oCur:= nHCur, oDlg:= oCur }

activate dialog oDlg center

return nil


Al arrancar el ejemplo el dialogo toma el cursor desde el archivo recurso dentro del .exe, pero al buscar un cursor como archivo externo, y cargarlo el Handle siempre regresa el valor 0, por lo que intuyo que loadicon() no lee desde archivos externos.

Hay alguna función o forma de cambiar los cursores desde archivos .cur externos, no vale que esten dentro de un archivo res, ya que el usuario elige a voluntad. trate de hacer una funcion loadcursorfromfile( cfile ) sin exito.

saludos y gracias por las ideas que puedan aportar la solucion. :-) :-)
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Como cargar cursor desde archivo
Posted: Mon Mar 14, 2022 10:06 AM

Estimado Victor,

la función a usar sería ReadCursor() pero parece que aún no está implementada :-)

Basándonos en el código en cursors.c habria que leer el fichero .cur, localizar los grupos de bytes como hacemos en cursors.c y crearlo del mismo modo que se hace en cursors.c

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Como cargar cursor desde archivo
Posted: Mon Mar 14, 2022 10:59 AM

https://docs.microsoft.com/en-us/window ... rfromfilea

Enviado desde mi SM-M325FV mediante Tapatalk

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 625
Joined: Wed Mar 14, 2007 06:49 PM
Re: Como cargar cursor desde archivo
Posted: Mon Mar 14, 2022 01:41 PM

Maestro Antonio Linares:

En efecto, ya había leído sobre el tema pero no di con el resultado, el Handle siempre retorno 0, intente también con gdi y tampoco, pensé que la función loadcursor() soportaba leer cursores desde archivo.

Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
Posts: 625
Joined: Wed Mar 14, 2007 06:49 PM
Re: Como cargar cursor desde archivo
Posted: Tue Mar 15, 2022 05:27 AM
Lo he logrado de esta forma, investigando y haciendo pruebas:

Code (fw): Select all Collapse
Local hCursor:=  LoadCursorFromFile( "Z:\FWH\cursors\Clock,cur" )
              
MSGStop(hCursor)  // Handle
SETCURSOR( hCursor )

DLL32 FUNCTION LoadCursorFromFile( lpFileName AS LPSTR ) AS LONG PASCAL FROM "LoadCursorFromFileA" LIB "user32.dll"


Asi he podido cambiar el icono, ya sea en .cur o en formato animado .ani, funcional !!!

Ojala sirva a alguien y que mejor, que sea incorporado a versiones futuras de Fivewin para que sea más fácil interactuar con cursores..

Saludos y abrazos a distancia a toda la comujnidad..
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Como cargar cursor desde archivo
Posted: Tue Mar 15, 2022 12:46 PM
cuatecatl82 wrote:Lo he logrado de esta forma, investigando y haciendo pruebas:

Code (fw): Select all Collapse
Local hCursor:=  LoadCursorFromFile( "Z:\FWH\cursors\Clock,cur" )
              
MSGStop(hCursor)  // Handle
SETCURSOR( hCursor )

DLL32 FUNCTION LoadCursorFromFile( lpFileName AS LPSTR ) AS LONG PASCAL FROM "LoadCursorFromFileA" LIB "user32.dll"


Asi he podido cambiar el icono, ya sea en .cur o en formato animado .ani, funcional !!!

Ojala sirva a alguien y que mejor, que sea incorporado a versiones futuras de Fivewin para que sea más fácil interactuar con cursores..

Saludos y abrazos a distancia a toda la comujnidad..


Thanks
Regards



G. N. Rao.

Hyderabad, India
Posts: 625
Joined: Wed Mar 14, 2007 06:49 PM
Re: Como cargar cursor desde archivo ( RESUELTO )
Posted: Sun Mar 20, 2022 04:44 AM
Maestro Antonio:
nageswaragunupudi:
Daniel Garcia-Gil:

Propongo agregar a la clase Cursor.prg unas lineas más para poder cargar cursores desde archivo recurso como siempre o desde archivos .cur o .ani externos de forma nativa sin hacer modificaciones en los fuentes de los programas ya hechos, solo se cambiaría el llamado al cursor y la clase se encargaría de saber si es en recurso o en archivo externo.

DEFINE CURSOR oCur RESOURCE "c:\cursor.cur" // "FLECHA"

Code (fw): Select all Collapse
IF FILE( cResName )
      ::hCursor = LoadCursorFromFile( cResName )
    ELSE
      ::hCursor = LoadCursor( GetResources(), cResName )
      ::lPredef = .F.
 ENDIF

DLL32 FUNCTION LoadCursorFromFile( lpFileName AS LPSTR ) AS LONG PASCAL FROM "LoadCursorFromFileA" LIB "user32.dll"


Saludos. :-) :-) :-)
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon

Continue the discussion