Luz en la caja del get

User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Luz en la caja del get

Post by Antonio Linares »

Paco,

Para añadir una funcionalidad asi a FWH más usuarios deberían estar de acuerdo. No es una funcionalidad estandard de Windows y me gusta no añadirle cosas extra a FWH que lo hacen crecer y que algunas veces no son útiles para todos. Confio en que me entiendas :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
hmpaquito
Posts: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: Luz en la caja del get

Post by hmpaquito »

Claro que si Antonio, te entiendo perfectamente.
Pero me parece que siempre hay una eterna disyuntiva: Esperar a que alguien lo pida u ofrecer mejoras sin que alguien las pida.
Sin la segunda opcion seria dificil que las cosas (=software) crecieran/ mejoraran.
devtuxtla
Posts: 392
Joined: Tue Jul 29, 2008 1:55 pm

Re: Luz en la caja del get

Post by devtuxtla »

Hola Antonio.

En lo personal, apoyo la idea de incluirlo en FW, ya que estamos utilizando en nuestras aplicaciones, algunas ideas parecidas cuando hacemos los GET's, para indicarle al usuario cual es el get activo, esta idea es mejor que la que hemos aplicado.

Saludos
Visite Chiapas, el paraiso de México.
User avatar
sysctrl2
Posts: 833
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Re: Luz en la caja del get

Post by sysctrl2 »

que bonito control,
yo que no uso resources,
me viene de maravilla.
saludos..
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
carlos vargas
Posts: 1421
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Luz en la caja del get

Post by carlos vargas »

ok,es mi opinión que para que fuera incluido en fwh deberían controles como combobox, buttons, radiobuttons tener esa misma funcionalidad ya que no se vería bien que solo un tipo de control tenga ese efecto.
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: Luz en la caja del get

Post by mastintin »

Mi opinión es que esto solo es un "ejercicio de funcionamiento" . Está muy verde , no funciona bien con recursos , no funciona bien con fondos ni texturas en los diálogos, el cruce de los degradados en las esquinas es bastante evidente. Para incluirlo tendría que funcionar en los demás controles también .
Estas cosas cambian rápido , este estilo de resaltado comienzo con macosx hace tiempo pero a día de hoy Apple lo ha quitado por otro sin degradados ( como Microsoft en win8 que quita todo degradado existente ) .
Lo que mostraron es de una página web realizada en jQuery ( probablemente) y se hace con estilos css , lo que quiere decir que las funciones que lo realizan están dentro del motor de renderizado de los navegadores y cada uno realizará "su" degradado .
Para hacerlo mas correctamente ,tendríamos que usar el código inicial de Antonio ( el que coloca rectangulos que cambian de color ) pero en vez usar la funcion nRgb para los colores tendría que ser una función nRGBA ( que no se si existe ) , ademas los degradados hacen unas "aguas" ( no son constantes ) , supongo que se podría conseguir un código por internet que lo realice.
Dos cosas :
1.- Si interesa resaltar el get con foco ,tenemos ya el cambio de fondo, pero se podría implementar un cambio de color de marco que lo haga mas evidente incluso con cambio de grosor de éste y sería mas fácil de implementar en todos los controles y al ser en la superficie del control no machacaría los fondos .
2.- Necesitamos una función nRGBA que nos permita realizar degradados a transparente mas fácilmente . Antoniooooo.... :D
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Luz en la caja del get

Post by Antonio Linares »

Manuel,

Tenemos que decidir si usar rectángulos (con esquinas redondeadas) ó degradados.

Y una vez decidamos eso, ver la opción de que sean transparentes y se mezclen con el fondo.

Si hacemos una función lo suficientemente genérica podriamos llamarla para cualquier control y entonces incluirla estandard (aunque opcional) en FWH.
regards, saludos

Antonio Linares
www.fivetechsoft.com
Carlos Mora
Posts: 988
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Re: Luz en la caja del get

Post by Carlos Mora »

Hola gente,
tener algo que ayude a resaltar el control activo de esa forma tan estética se ve fantástico.
Respecto de la implementación se me ocurren algunas ideas:
- Para no afectar el código existente, ¿Por que no crear una nueva clase? con un par de toques en los comandos y redefines se usa una u otra, sin perjuicio de lo que ya hay escrito.
- Los problemas de pintado vienen porque el area pintada pertenece al diálogo/windows y no al control, con lo que se afecta todo el diálogo.
¿Que opinais de tener un 'resaltador', un bitmap móvil, que se adapta al tamaño del control que queremos resaltar? Se pinta con canal alpha y los degradados, y hace el pintado independiente del control, con lo que valdría también para otras clases distintas de la tGet Tendríamos uno solo por Win/Dlg, se movería 'debajo' del control que toma foco (o desaparecería si el control no hace uso del resaltado), No habría que modificar las clases existentes, o tal vez muy poco, disminuyendo el impacto sobre el código existente.

Bueno, esos son mis 2 cents. :)
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: Luz en la caja del get

Post by mastintin »

otra versión ... con gdi+ .

Code: Select all

function LightBorder( oGet,lfocus,lRounded )

   local hDC := oGet:oWnd:GetDC()
   local hBrush, hOldBrush, n
   local aTopLeft, aBottomRight
   local hPen1
   local aRect := GetClientRect( oGet:hWnd )
   local oGraphics := Graphics():New( hDC ) //Graphic-Object, High Quality is standard
   local oPen 
    
  local nRed := nRGBRed( oget:ownd:nClrPane ) 
  local nGreen := nRGBGreen( oget:ownd:nClrPane ) 
  local nBlue := nRGBBlue( oget:ownd:nClrPane )
  

  
    if lFocus 
      hPen1 = CreatePen( PS_SOLID, 1,  nRGB( 102 , 175, 233 ) )
     else
      hPen1 = CreatePen( PS_SOLID, 1,  nRGB( 180 , 180, 180 ) )
    endif 
  
   SelectObject( hDC,hPen1)
      
    aTopLeft = ClientToScreen( oGet:hWnd, { aRect[1], aRect[2] } )
    aTopLeft = ScreenToClient( oGet:oWnd:hWnd, aTopLeft )

    aBottomRight = ClientToScreen( oGet:hWnd, {aRect[3], aRect[4] } )
    aBottomRight = ScreenToClient( oGet:oWnd:hWnd, aBottomRight )
   
     SetBkMode( hDC , 1 )
       
  
     if lRounded
        RoundRect( hDC, aTopLeft[2]-4, aTopLeft[1]-2, aBottomRight[ 2 ]+3,  aBottomRight[ 1 ]+2 , 7, 7 )
    else
        Rectangle( hDC, aTopLeft[1]-2, aTopLeft[2]-2, aBottomRight[ 1 ]+2,  aBottomRight[ 2 ]+2 )
    endif
   
     DeleteObject( hpen1 )
     
        
    for n = 1 to 10 // 10 es mejor
           
      if lFocus 
        oPen := Pen():New( 255-n*25 , 214, 234, 249 , 1 , .T.) 
      else
        oPen := Pen():New( 255 , nRed, nGreen, nBlue , 1 , .T.) 
      endif  
       
      open:setsize(1)
     
      oGraphics:DrawRect( oPen, , aTopLeft[2]-n-4 , aTopLeft[1]-n-2,  aBottomRight[ 2 ]- aTopLeft[2]+(n+3)*2 , aBottomRight[ 1 ]- aTopLeft[1]+ (n+2)*2 )
       
      open:destroy()
  
   next
 oGraphics:destroy()
 oGet:oWnd:ReleaseDC()

Return nil
 
D.Fernandez
Posts: 392
Joined: Wed Jul 31, 2013 1:14 pm
Location: Maldonado - Uruguay
Contact:

Re: Luz en la caja del get

Post by D.Fernandez »

Para que no se pierda...Me interesa..
Gracias

Saludos.
Dario Fernandez
FWH, Harbour, BCC, MySql & MariaDB, tData, Dbf/Cdx
VSCode.
Maldonado - Uruguay
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Luz en la caja del get

Post by karinha »

Antonio Linares wrote:Manuel,

Tenemos que decidir si usar rectángulos (con esquinas redondeadas) ó degradados.

Y una vez decidamos eso, ver la opción de que sean transparentes y se mezclen con el fondo.

Si hacemos una función lo suficientemente genérica podriamos llamarla para cualquier control y entonces incluirla estandard (aunque opcional) en FWH.

Master esto está incluido en el nuevo FWHX?

Gracias, saludos.
João Santos - São Paulo - Brasil
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Luz en la caja del get

Post by Antonio Linares »

João,

No
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply