SetGetColorFocus

Post Reply
fergonm
Posts: 133
Joined: Fri Nov 30, 2007 11:34 am
Location: Zaragoza (España)

SetGetColorFocus

Post by fergonm »

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
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: SetGetColorFocus

Post by karinha »

c:\fwh1306\samples\gunther3.prg

saludos.
João Santos - São Paulo - Brasil
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: SetGetColorFocus

Post by FranciscoA »

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: Select all

  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.

Fwxh1204-MySql-TMySql
fergonm
Posts: 133
Joined: Fri Nov 30, 2007 11:34 am
Location: Zaragoza (España)

Re: SetGetColorFocus

Post by fergonm »

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: Select all

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
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: SetGetColorFocus

Post by FranciscoA »

Fernando:
Creo que no expliqué bien. Su uso es en cada dialog o ventana, segun el codigo de ejemplo siguiente:

Code: Select all

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.

Fwxh1204-MySql-TMySql
User avatar
acuellar
Posts: 1312
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: SetGetColorFocus

Post by acuellar »

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: Select all

   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.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: SetGetColorFocus

Post by Antonio Linares »

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
User avatar
acuellar
Posts: 1312
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: SetGetColorFocus

Post by acuellar »

Gracias Antonio

He modificado el método:

Code: Select all

METHOD MouseLeave( nRow, nCol, nFlags ) CLASS TBtnBmp

   ::lMOver = .F.
   ::Refresh()
   ::SetColor( CLR_BLACK )  //Agregada
return nil
 
Al compilar me da este error

Code: Select all

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.
hmpaquito
Posts: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: SetGetColorFocus

Post by hmpaquito »

En el fuente cambia todos los

Code: Select all

Super
por

Code: Select all

 ::Super
User avatar
acuellar
Posts: 1312
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: SetGetColorFocus

Post by acuellar »

Gracias amigos

Funcionó perfecto.

Saludos,

Adhemar
Saludos,

Adhemar C.
fergonm
Posts: 133
Joined: Fri Nov 30, 2007 11:34 am
Location: Zaragoza (España)

Re: SetGetColorFocus

Post by fergonm »

Buenos días.

Muchas gracias a todos. Pruebo y ya les contaré.
Un saludo
Saludos. Fernando
fergonm
Posts: 133
Joined: Fri Nov 30, 2007 11:34 am
Location: Zaragoza (España)

Re: SetGetColorFocus

Post by fergonm »

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
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: SetGetColorFocus

Post by joseluisysturiz »

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... :shock:

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

Gracias a mi Dios ante todo!
Post Reply