FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour SetGetColorFocus
Posts: 133
Joined: Fri Nov 30, 2007 11:34 AM
SetGetColorFocus
Posted: Wed Jul 16, 2014 10:02 AM

Buenos días.
Intento cambiar el color de los GET,s al posicionar sobe ellos mediante la función SetGetColorFocus() colocada en el programa principal. Me da el siguiente error de compilación:
Error: Unresolved external '_HB_FUN_SETGETCOLORFOCUS' referenced from
Necesito ayuda.

Saludos. Fernando
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: SetGetColorFocus
Posted: Wed Jul 16, 2014 12:42 PM

c:\fwh1306\samples\gunther3.prg

saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: SetGetColorFocus
Posted: Wed Jul 16, 2014 03:20 PM
Hola Fernando.
Que version usas?
Esta function esta disponible desde Octubre 2007 segun WhatNews.
En mi version 1204 esto trabaja bien, desde Function Main(): SetGetColorFocus( RGB(252,232,191) ) //color fondo de gets cuando tienen el foco

Tambien puedes intentar, en cada ventana, con:
Code (fw): Select all Collapse
  AEval( oWndChild:aControls,{|o| if(o:ClassName()=="TGET",;
         ( o:bGotFocus  := {|o|o:SetColor( RGB(0,0,0), RGB(252,232,191) )} ,;
           o:bLostFocus := {|o|o:SetColor( CLR_BLACK, CLR_WHITE )} ),) } )

Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 133
Joined: Fri Nov 30, 2007 11:34 AM
Re: SetGetColorFocus
Posted: Wed Jul 16, 2014 03:46 PM
Muchas gracias a los dos por contestar.
Tengo la versión 7.07 de julio de 2007. En la ayuda suministrada aparece la función, por lo que he supuesto que está disponible.
Francisco he intentado lo que me dices y me da el siguiente error
Code (fw): Select all Collapse
Application
===========
   Path and name: D:\Personal\peritoprueba\perito.Exe (32 bits)
   Size:   672,256 bytes
   Time from start: 0 hours 0 mins 5 secs 
   Error occurred at: 16-07-2014, 17:38:09
   Error description: Error BASE/2017  Error de argumento: AEVAL
   Args:
     [   1] = U   
     [   2] = B   {|| ... }

Stack Calls
===========
   Called from:  => AEVAL(0)
   Called from: D:\Personal\peritoprueba\PRG\perito32.prg => MAIN(199)


lo sigo intentando
Saludos. Fernando
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: SetGetColorFocus
Posted: Wed Jul 16, 2014 04:50 PM
Fernando:
Creo que no expliqué bien. Su uso es en cada dialog o ventana, segun el codigo de ejemplo siguiente:
Code (fw): Select all Collapse
Function Recibo()
local  oDlg, nRcaja,dFecha

   DBSELECTAREA("RCAJAG")

DEFINE DIALOG oDlg RESOURCE "GRABAR"  TITLE "Prueba"

REDEFINE GET oRcaja   VAR nRcaja   ID 101 OF oDlg PICTURE "@!" 

REDEFINE GET oFecha     VAR dFecha     ID 102 OF oDlg 

   REDEFINE BUTTONBMP ID 309 OF oDlg BITMAP "ACEPTAR" TEXTRIGHT  ACTIO MsgInfo("Hola")
   REDEFINE BUTTONBMP ID 310 OF oDlg BITMAP "CANCELAR" TEXTRIGHT   ACTION ( oDlg:End() )
 
  AEval( oDlg:aControls,{|o| if(o:ClassName()=="TGET",;
         ( o:bGotFocus  := {|o|o:SetColor( RGB(0,0,0), RGB(252,232,191) )} ,;
           o:bLostFocus := {|o|o:SetColor( CLR_BLACK, CLR_WHITE )} ),) } )

   ACTIVATE DIALOG oDlg CENTERED 
 RETURN( NIL )

Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: SetGetColorFocus
Posted: Wed Jul 16, 2014 06:13 PM
Amigos

Se puede hacer lo mismo para BTNBMP que cambie de color el texto cuando el mouse está sobre el botón

He hecho esto:

Code (fw): Select all Collapse
   REDEFINE BTNBMP oBtn 101 OF oDlg RESOURCE "Boton1",Nil,Nil,"Boton2" PROMPT "Aceptar" ACTION MiFuncion()
   REDEFINE BTNBMP oBtn 102 OF oDlg RESOURCE "Boton1",Nil,Nil,"Boton2" PROMPT "Cancelar" ACTION oDlg:End()
    oBtn:bMMoved:= {|| oBtn:SetColor( CLR_BLUE ) }

Se pone en azúl, pero no se como volverlo a negro cuando pasa al otro.

Gracias por la ayuda

Saludos,

Adhemar
Saludos,



Adhemar C.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: SetGetColorFocus
Posted: Thu Jul 17, 2014 07:39 AM

Adhemar,

para conseguir esa funcionalidad tienes que usar:

define WM_MOUSELEAVE 675

define TME_LEAVE 2

Desde el Método MouseMove( nRow, nCol, nFlags ) tienes que llamar a:

TrackMouseEvent( ::hWnd, TME_LEAVE )

Desde el método HandleEvent( nMsg, nWParam, nLParam )

if nMsg == WM_MOUSELEAVE
return ::MouseLeave( nHiWord( nLParam ), nLoWord( nLParam ), nWParam )
endif

Y en MouseLeave() se restaura el color que desees.

Busca por WM_MOUSELEAVE en las Classes de FWH y verás como lo usamos :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: SetGetColorFocus
Posted: Thu Jul 17, 2014 05:01 PM
Gracias Antonio

He modificado el método:
Code (fw): Select all Collapse
METHOD MouseLeave( nRow, nCol, nFlags ) CLASS TBtnBmp

   ::lMOver = .F.
   ::Refresh()
   ::SetColor( CLR_BLACK )  //Agregada
return nil


Al compilar me da este error

Code (fw): Select all Collapse
Error description: Error BASE/1003  No existe la variable: SUPER

Stack Calls
===========
   Called from: D:\Sistemas\RRHH\DATA\PRG\btnbmp.prg => TBTNBMP:SETCOLOR( 0 )
   Called from: D:\Sistemas\RRHH\DATA\PRG\btnbmp.prg => TBTNBMP:NEWBAR( 0 )
   Called from: D:\Sistemas\RRHH\DATA\PRG\RRHH.PRG => MAIN( 0 )


Gracias por la ayuda

Saludos,

Adhemar
Saludos,



Adhemar C.
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: SetGetColorFocus
Posted: Thu Jul 17, 2014 05:25 PM
En el fuente cambia todos los
Code (fw): Select all Collapse
Super
por
Code (fw): Select all Collapse
 ::Super
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: SetGetColorFocus
Posted: Thu Jul 17, 2014 05:47 PM

Gracias amigos

Funcionó perfecto.

Saludos,

Adhemar

Saludos,



Adhemar C.
Posts: 133
Joined: Fri Nov 30, 2007 11:34 AM
Re: SetGetColorFocus
Posted: Fri Jul 18, 2014 10:50 AM

Buenos días.

Muchas gracias a todos. Pruebo y ya les contaré.
Un saludo

Saludos. Fernando
Posts: 133
Joined: Fri Nov 30, 2007 11:34 AM
Re: SetGetColorFocus
Posted: Fri Jul 18, 2014 11:03 AM
Fernando:
Creo que no expliqué bien. Su uso es en cada dialog o ventana, segun el codigo de ejemplo siguiente:


Francisco.

Te entendí mal, disculpas. Funciona correctamente.
Un saludo. Fernando
Saludos. Fernando
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: SetGetColorFocus
Posted: Sat Jul 19, 2014 02:39 AM
fergonm wrote:Buenos días.
Intento cambiar el color de los GET,s al posicionar sobe ellos mediante la función SetGetColorFocus() colocada en el programa principal. Me da el siguiente error de compilación:
Error: Unresolved external '_HB_FUN_SETGETCOLORFOCUS' referenced from
Necesito ayuda.

Probastes usando al princio de los prg esto.? saludos... :-)

TGet():lDisColors := .f.
Dios no está muerto...



Gracias a mi Dios ante todo!

Continue the discussion