FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Color en Radio y Checkbox
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Color en Radio y Checkbox
Posted: Mon Sep 17, 2012 02:11 AM
Amigos del foro, ¿es posible cambiar el color a Radio o Checkboxs?
Lo he intentado durante 2 horas y no lo logro. He revisado en el foro varios ejemplos pero están definidos desde codigo.
Los míos son desde recursos y no funciona el cambio de color, con brush o degradado (SetDlgGradient()). Uso FWH 1204

Este es el codigo que estoy usando:
Code (fw): Select all Collapse
 REDEFINE RADIO oRadioB VAR nRadioB ID 101,102,103 OF oDlg COLOR 128, 16642248   //NO FUNCIONA

Este tampoco me funciona:
Code (fw): Select all Collapse
     For n := 1 to nLen
        if oDlg:aControls[n]:CLASSNAME == "TSAY"    //funciona
           oDlg:aControls[n]:SetColor( RGB(252,232,171),0 )
        elseif oDlg:aControls[n]:CLASSNAME == "TGET"     //funciona 
           oDlg:aControls[n]:SetColor( 0,RGB( 199, 216, 237 ) )
        elseif oDlg:aControls[n]:CLASSNAME == "TRADIO" // NO FUNCIONA
           oDlg:aControls[n]:SetColor( RGB( 199, 216, 237 ),0 )
        endif
     Next
     oDlg:Refresh()

Agradezco cualquier sugerencia.

Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Color en Radio y Checkbox
Posted: Mon Sep 17, 2012 03:56 AM
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Color en Radio y Checkbox
Posted: Mon Sep 17, 2012 02:29 PM
// Intenta modificar CONTROL.PRG talbéz funcione...

Code (fw): Select all Collapse
METHOD Colors( hDC ) CLASS TControl

   DEFAULT ::nClrText := GetTextColor( hDC ),;
           ::nClrPane := GetBkColor( hDC ),; 
           ::oBrush   := TBrush():New( , ::nClrPane ),;
           ::lTransparent := .F.

   SetTextColor( hDC, ::nClrText )
   SetBkColor( hDC, ::nClrPane )
   
   if ::lTransparent
      SetBkMode( hDC, 1 ) // TRANSPARENT
      if ! Empty( ::oBrush:hBitmap )
         SetBrushOrgEx( hDC, nBmpWidth( ::oBrush:hBitmap ) - ::nLeft, nBmpHeight( ::oBrush:hBitmap ) - ::nTop )
         FillRect( hDC, GetClientRect( ::hWnd ), ::oBrush:hBrush )
      endif 
   else 
      if IsAppThemed() .and. Upper( ::ClassName() ) $ "TCHECKBOX;TRADIO;TGROUP"
         DrawPBack( ::hWnd,  hDC )
      endif
   endif

return ::oBrush:hBrush
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Color en Radio y Checkbox
Posted: Mon Sep 17, 2012 02:32 PM
Hola, aqui, de nuevo.

Omitiendo esto en el RC no funciona
1 24 ThemesXp.Manifest

Usando IsAppThemed() return .f. //no funciona
Usando IsAppThemed() return .t. //no funciona

Con este codigo:
REDEFINE CHECKBOX oCkBoxProf VAR lCkBoxProf ID 239 OF oDlg COLOR 123123,0 //no Funciona
oCkBoxProf:SETCOLOR( 123123, ) //No funciona

AEval( oDlg:aControls, {|o| ;
if(UPPER(o:CLASSNAME) == "TSAY", o:SetColor( RGB(252,232,171),0 ) ,; //funciona
if(UPPER(o:CLASSNAME) == "TGET", o:SetColor( 0,RGB(199,216,237) ) ,; //funciona
if(UPPER(o:CLASSNAME) == "TCHECKBOX" .or. UPPER(o:CLASSNAME) == "TRADIO", o:SetColor( RGB(199,216,237),0 ),))) } ) //NO FUNCIONA


Quizas la imagen anterior no dice nada.


Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Color en Radio y Checkbox
Posted: Mon Sep 17, 2012 02:38 PM

Gracias por contestar, Karinha. Voy a probar y te digo.
Saludos.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Color en Radio y Checkbox
Posted: Mon Sep 17, 2012 03:06 PM

Karinha, agregue Control.prg a mi compilacion, modificado con lo que sugeriste.
Desafortunadamente, persiste el comportamiento. (No cambia colores de Radio o CheckBox).
Saludos.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Color en Radio y Checkbox
Posted: Mon Sep 17, 2012 03:59 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Color en Radio y Checkbox
Posted: Mon Sep 17, 2012 04:02 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Color en Radio y Checkbox
Posted: Mon Sep 17, 2012 05:22 PM

Gracias Karinha, por tu interés. Ya he probado de muchas maneras, en XP SP2 y W7 ULTIMATE, y nada.
Lo raro es que si desactivo los Radios, si los presenta desactivados. (tanto XP como W7).
"Sigo de frente" (como decimos aqui).
Saludos.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Color en Radio y Checkbox
Posted: Mon Sep 17, 2012 09:58 PM
Hola, por favor ejecuten este ejemplo y me dicen. ( compilado con FWH 1204 - XHARBOUR Compiler build 1.2.1 (SimpLex) (Rev. 9445) - BORLAND 582)

Code (fw): Select all Collapse
//------------------
Function Prueba()
local oDlg,oRad,nVar:=2,oCheck, lCkbox:=.f.

Define Dialog oDlg from 1,1 to 200,400 PIXEL
oDlg:SetColor(0,0)

@2,10  CHECKBOX oCheck  VAR lCkBox OF oDlg PIXEL ; //COLOR 16777215
   ON CHANGE if(lCkbox,oRad:Disable(),oRad:Enable())
oCheck:cCaption := " Prueba de Color"
oCheck:nClrText := 16777215

@20,10 RADIO oRad VAR nVar ITEMS "UNO","DOS","TRES" OF oDlg PIXEL
AEval( oRad:aItems,{|o| o:nClrText := 16777215} )

Activate Dialog odlg centered
return nil

Me he visto obligado a hacerlo de la manera "mas chapucera" que se conoce: agregando controles say a cada Radio y CheckBox.

Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Color en Radio y Checkbox
Posted: Wed Sep 19, 2012 08:13 PM

Francisco,

Estas usando un degradado en el diálogo y quieres que esos controles tengan un color distinto, si ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Color en Radio y Checkbox
Posted: Wed Sep 19, 2012 09:07 PM
Antonio, gracias por tu tiempo.
Efectivamente, tengo un dialogo degradado con SetDlgGradient(), y su color es negro puro. Lo que quiero es poner el texto de los CheckBox y Radio en un color diferente (celeste, por ejemplo), ya que siempre se toman con su color original (negro) y no se visualizan. Si los pongo :disabled() si se reflejan, apenas, con su color plomo bajo. Inluso, en pruebas sin degradado, no cambian de color.

Aprovecho para preguntarte ¿donde te puedo subir una carpeta que contiene 20 ficheros de musica? (55MB)


Nuevamente gracias.

Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 883
Joined: Thu Dec 24, 2009 12:46 AM
Re: Color en Radio y Checkbox
Posted: Sat Feb 16, 2013 02:25 AM
Francisco,
Encontraste alguna forma de resolver esto???
Mi problema es con el color de fondo...
Yo tambien ya había probado colocando Say's junto a los checkboxes, pero hay que encontrar la forma de resolver el problema...

Por ahora tengo estos dos problemas:

Check Boxes y Group Boxes:


MsgSiNo()


Code (fw): Select all Collapse
FUNCTION MsgSiNo(cCaption, cTitle)
    
    SiNo := { " Sí " , " No " } 
    nOK := ALERT(cCaption, SiNo, cTitle, 1, 32516 ) // 32512 al 32516
    
    If( nOK == 1 , nOK := .T. , nOK := .F. )
    
RETURN nOK

=====>

Bayron Landaverry
xBasePHP.com
(215)2226600 Philadelphia,PA, USA
MayaBuilders@gMail.com
Guatemala

FWH25.06--Harbour 3.0.0--BCC7.7--UEstudio 10.10
Windows 10

FiveWin, One line of code and it's done...

Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Color en Radio y Checkbox
Posted: Sat Feb 16, 2013 04:08 AM

Bayron, aun tengo los mismos problemas.
Saludos.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 883
Joined: Thu Dec 24, 2009 12:46 AM
Re: Color en Radio y Checkbox
Posted: Fri Feb 22, 2013 01:48 AM

Alguna sugerencia Antonio...!!!!

Gracias...

=====>

Bayron Landaverry
xBasePHP.com
(215)2226600 Philadelphia,PA, USA
MayaBuilders@gMail.com
Guatemala

FWH25.06--Harbour 3.0.0--BCC7.7--UEstudio 10.10
Windows 10

FiveWin, One line of code and it's done...