Page 1 of 1

Clase TIconGroup ( SOLUCIONADO )

PostPosted: Thu Jul 30, 2015 7:18 pm
by cuatecatl82
Buenas tardes a todos los compañeros:

He trabajando un rato con la Clase TIconGroup sin muchos problemas, la vez pasada pude implementar el uso del Mouse y las teclas de avance de pagina, en esta ocasion les pido de su colaboracón a los master de las Clases, y es que no encuentro como caambiar el bendito color del icono seleccionado, ya que en la clase no esta definido, la hereda desde la clase TControl.

Image

Solo he logrado cambiar el color del icono cuando pierde el foco, pero no cuando esta seleccionado, ni de forma condicional el control evalua cada click dentro del control sin permitir el color del selector:

http://www.mediafire.com/download/wz68p9mwce29yjm/IGroup.rar

Maestro Antonio ojala le pueda dar una revisada... Saludos..

Re: Clase TIconGroup

PostPosted: Fri Jul 31, 2015 11:52 am
by Antonio Linares
Victor,

Parace que el pintado de los iconos se realiza con la función ExtDrawIcon()

Y hay un método METHOD ShowFocus( lFocused ) CLASS TIconGroup desde donde se llama a ExtDrawIcon()

En concreto:

::aCoors[ nAt ] = ExtDrawIcon( hDC, ::aCoors[ nAt, 1 ], ::aCoors[ nAt, 2 ], ;
::aIcons[ nAt ], ::aPrompts[ nAt ], hFont, ;
::nClrText, ::nClrPane, lFocused, .t., ::lEdit )

Yo probaría a cambiar el color de ::nClrPane

Prueba asi:

oIconGroup:bGotFocus := { || ::nClrPane := nColorQueDesees }

Re: Clase TIconGroup

PostPosted: Sat Aug 01, 2015 12:44 am
by cuatecatl82
Asi es Maestro, he tocado el método METHOD ShowFocus( lFocused ) CLASS TIconGroup pensando que desde ahi se podria, pero es negativo, solo se puede modificar los colores del texto y fondo del icono cuando pierde el foco, revisando en la clase no encontre de donde obtiene el color que por defecto toma el Icono al recibir el foco, por eso dedusco que lo hereda desde la Clase TControl. así es como queda con lo que me sugiere y que ya habia probado, pero no es lo que necesito.

Habra que realiza algun cambio en la clase..?

Image


Saludos.

Re: Clase TIconGroup

PostPosted: Sat Aug 01, 2015 4:05 am
by joseluisysturiz
Saludos, disculpa mi ignorancia, pero mas o menos que funcion cumple esta clase y como para que se podria usar en una aplicacion o que tipo de aplicacion es la mas conveniente.? en pocas palabras...cual es el uso mas adecuadao.? gracias, saludos... :shock:

Re: Clase TIconGroup

PostPosted: Sat Aug 01, 2015 7:53 am
by Antonio Linares
Victor,

El problema viene de la función EXTDRAWICON() que selecciona los colores de esta fortma:

COLORREF nClrFore = bFocused ? GetSysColor( COLOR_CAPTIONTEXT )
: hb_parnl( 7 );
COLORREF nClrBack = bFocused ? GetSysColor( COLOR_ACTIVECAPTION )
: hb_parnl( 8 );

Al dibujar el elemento seleccionado está usando COLOR_ACTIVECAPTION

La manera más simple de solucionarlo sería que modificases el código de esta función y que lo añadas a tu PRG principal

Re: Clase TIconGroup

PostPosted: Sat Aug 01, 2015 1:27 pm
by cuatecatl82
Jose Luis:

La Clase TIconGroupsirve para poder dibujar iconos en un control para simular un explorador de archivos propio de Fivewin, puede Mostrar el icono, cambiarle el nombre, arrastrarlos moverlos u ordenarlos y cada uno puede realizar una accion, es una clase que casi nadie usa pero que para mi me ha serviso en varios proyectos.
Saludos.


Espectacular Maestro: Solucionado el Problema le agradesco Mucho.. Saludos.-

Re: Clase TIconGroup

PostPosted: Sat Aug 01, 2015 2:26 pm
by joseluisysturiz
cuatecatl82 wrote:Jose Luis:

La Clase TIconGroupsirve para poder dibujar iconos en un control para simular un explorador de archivos propio de Fivewin, puede Mostrar el icono, cambiarle el nombre, arrastrarlos moverlos u ordenarlos y cada uno puede realizar una accion, es una clase que casi nadie usa pero que para mi me ha serviso en varios proyectos.
Saludos.


Espectacular Maestro: Solucionado el Problema le agradesco Mucho.. Saludos.-

Muchas gracias por tu explicacion, pero lo que mas me gustaria saber es como en que tipo de aplicaciones lo usas o si podrias poner alguna imagen de tus sistemas usandola para ver si le puedo sacar algun beneficion, a veces el que no usemos una clase es porque es nuestrtas aplicaciones no sabemos para que nos seria util, o a lo mejor el no conocerla, hacemos algo de una forma, cuando con dicha clase, seria mas facil y comodo, gracias,saludos... :shock:

Re: Clase TIconGroup ( SOLUCIONADO )

PostPosted: Sat Aug 01, 2015 4:21 pm
by cuatecatl82
Un pequeño ejemplo propio con codigo fuente y todas las modificaciones que le he realizado incluidas:
http://www.mediafire.com/download/pf74sqy7e22cchi/IGroup2.zip

El archivo de ejemplo original de Ramon Avendaño esta en .\samples\Testigro.prg, si no mal recuerdo el generador de aplicaciones Verce tambien lo usa

Image

Saludos.

Re: Clase TIconGroup ( SOLUCIONADO )

PostPosted: Sat Aug 01, 2015 4:37 pm
by joseluisysturiz
cuatecatl82 wrote:Un pequeño ejemplo propio con codigo fuente y todas las modificaciones que le he realizado incluidas:
http://www.mediafire.com/download/pf74sqy7e22cchi/IGroup2.zip

El archivo de ejemplo original de Ramon Avendaño esta en .\samples\Testigro.prg, si no mal recuerdo el generador de aplicaciones Verce tambien lo usa

Image

Saludos.

Super, lo descargo y reviso...ya se me vienen idesas de como usarla en mis sistemas, por lo menos para las conexion entre las estaciones de trabajo...o hasta para hacer exportaciones en los reportes, opciones para unidades donde hacer respaldo, etc...gracias man...saludos... :shock:

Re: Clase TIconGroup ( SOLUCIONADO )

PostPosted: Sat Aug 01, 2015 5:01 pm
by cnavarro
Muy bueno, gracias
Solo un add si me lo permites, añade

Code: Select all  Expand view

   #ifndef _WIN64
         ... hb_retnl(
   // y
        ... hb_parnl(
   #else
        ... hb_retnll(
    // y  
       ... hb_parnll(
   #endif
 


A mi se me olvidan habitualmente

Re: Clase TIconGroup ( SOLUCIONADO )

PostPosted: Sat Aug 01, 2015 5:08 pm
by joseluisysturiz
cnavarro wrote:Muy bueno, gracias
Solo un add si me lo permites, añade

Code: Select all  Expand view

   #ifndef _WIN64
         ... hb_retnl(
   // y
        ... hb_parnl(
   #else
        ... hb_retnll(
    // y  
       ... hb_parnll(
   #endif
 


A mi se me olvidan habitualmente


Disculpa NAVARRO, no entendi tu comentario, esto que recomiendas es como para que..? saludos... :shock:

Re: Clase TIconGroup ( SOLUCIONADO )

PostPosted: Sat Aug 01, 2015 5:17 pm
by cnavarro
joseluisysturiz wrote:
cnavarro wrote:Muy bueno, gracias
Solo un add si me lo permites, añade

Code: Select all  Expand view

   #ifndef _WIN64
         ... hb_retnl(
   // y
        ... hb_parnl(
   #else
        ... hb_retnll(
    // y  
       ... hb_parnll(
   #endif
 



A mi se me olvidan habitualmente


Disculpa NAVARRO, no entendi tu comentario, esto que recomiendas es como para que..? saludos... :shock:


Para poder usarlo en 32 o 64 bits
Nada que disculpar, a mandar :D

Re: Clase TIconGroup ( SOLUCIONADO )

PostPosted: Sat Aug 01, 2015 5:23 pm
by joseluisysturiz
Ok, confirmas mi sospecha que era para eso, jejej..nunca esta demas confirmar, gracias y saludos... :shock: