Page 1 of 1

Radiobutton e checkbox transparent.

Posted: Mon Apr 23, 2007 1:50 pm
by kbelo
Buonas díaz.
Hice una ventana con profundamente ella degrado y quisiera todos los
controles era transparente.
Coloqué ja en el transparente en la definición del diálogo pero mi
Radiobuttons y nao del checkbox son transparentes el color de
profundamente son el color de Windows.
¿Alguem podía ayudarme?

Deudor

Esta frase era passade en un traductor perdona los errores.

Posted: Mon Apr 23, 2007 3:49 pm
by karinha
Marcelo, tens como mostrar uma Imagem?

Ficou dificil a tradução. Terrivel este tradutor que usastes, en google, tem tradutores excelentes de Portugues a Espanhol. Abraços.

Posted: Mon Apr 23, 2007 4:24 pm
by kbelo
Image

Veja João como esta ficando.
Coloquei este degrade pra testes mesmo com o transparent na janela fica assim.
Nos Says resolveu fica tudo transparente mesmo nao sendo definido na dll com recursos.

Posted: Mon Apr 23, 2007 11:35 pm
by Taiwan
kbelo wrote:Image

Veja João como esta ficando.
Coloquei este degrade pra testes mesmo com o transparent na janela fica assim.
Nos Says resolveu fica tudo transparente mesmo nao sendo definido na dll com recursos.
Hello

You can upgrade to new FWH version. New version support it.

DEFINE DIALOG RESOURCE "XXX" transparent

Regards,

Richard

Posted: Tue Apr 24, 2007 6:58 am
by Antonio Linares
kbelo,

Has redefinido todos los radiobuttons y checkboxes desde tu PRG ?

Posted: Tue Apr 24, 2007 11:18 am
by kbelo
Uso esta versão não é necessario atualização.
fw 2.8 e xharbour 0.99.71
E esta sim tudo definido no meu prg todoso os radio e checkbox e minha dialog ja tem este Transparent como ja citei acima.

Posted: Tue Apr 24, 2007 12:18 pm
by Antonio Linares
Marcelo,

Si quieres publica el PRG de ese diálogo y su RC y el brush usado y lo probamos aqui para que veas el resultado con FWH 7.04

Posted: Tue Apr 24, 2007 12:23 pm
by kbelo

Code: Select all

DEFINE DIALOG oDlgOrdem RESOURCE "CFGORDEM" icon Load_Obj(1) Font Load_Obj(2) transparent
REDEFINE RADIO    onOpc      VAR nOpc      ID 101,102,103 OF oDlgOrdem ;
               ON CHANGE Habilita()

REDEFINE CHECKBOX owEtapacor VAR wEtapacor ID 104 OF oDlgOrdem	when nopc==1 
REDEFINE CHECKBOX owCombicor VAR wCombicor ID 105 OF oDlgOrdem	when nopc==1 
REDEFINE CHECKBOX owObsercor VAR wObsercor ID 106 OF oDlgOrdem	when nopc==1 
REDEFINE CHECKBOX owengencor VAR wengencor ID 107 OF oDlgOrdem	when nopc==1 
REDEFINE RADIO    owMaterrea VAR wMatercor ID 108,109,110 OF oDlgOrdem when nopc==1 
REDEFINE CHECKBOX owEtapaRea VAR wEtapaRea ID 111 OF oDlgOrdem	when nopc==2 
REDEFINE CHECKBOX owCombiRea VAR wCombiRea ID 112 OF oDlgOrdem	when nopc==2 
REDEFINE CHECKBOX owObserRea VAR wObserRea ID 113 OF oDlgOrdem	when nopc==2 
REDEFINE CHECKBOX owengenRea VAR wengenRea ID 114 OF oDlgOrdem	when nopc==2 
REDEFINE RADIO    owMaterRea Var wMaterrea ID 115,116,117 OF oDlgOrdem when nopc==2 
REDEFINE CHECKBOX owEtapaSer VAR wEtapaSer ID 118 OF oDlgOrdem when nopc==3 
REDEFINE CHECKBOX owCombiSer VAR wCombiSer ID 119 OF oDlgOrdem	when nopc==3 
REDEFINE CHECKBOX owObserSer VAR wObserSer ID 120 OF oDlgOrdem	when nopc==3 
REDEFINE CHECKBOX owengenSer VAR wengenSer ID 121 OF oDlgOrdem	when nopc==3 
REDEFINE RADIO    owMaterSer Var wMaterSer ID 122,123,124 OF oDlgOrdem when nopc==3 

REDEFINE BUTTON Obtok  ID 125 ACTION( Grava(),oDlgOrdem:End()  )
REDEFINE BUTTON obtcan ID 126 ACTION (oDlgOrdem:End ( )) CANCEL

ACTIVATE DIALOG oDlgOrdem CENTER on init sysrefresh()  
Eu uso tambem esta função para fazer o degrade no onpaint()

Code: Select all

*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
FUNCTION Textura(oDlgTxt) 
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
LOCAL hWnd:=oDlgTxt:hWnd
LOCAL aRec:=GetClientRect(hWnd)
LOCAL oBrush,nX,nStp:=(aRec[3]-aRec[1])/2
LOCAL nColor1:=rgb(245,245,245),nColor2:=rgb(215,215,215)
LOCAL nColorR1:=nRgbRed(nColor1),nColorG1:=nRgbGreen(nColor1),nColorB1:=nRgbBlue(nColor1)
LOCAL nColorR2:=nRgbRed(nColor2),nColorG2:=nRgbGreen(nColor2),nColorB2:=nRgbBlue(nColor2)
LOCAL nSomaR:=ABS(nColorR2-nColorR1),nSomaG:=ABS(nColorG2-nColorG1),nSomaB:=ABS(nColorB2-nColorB1)
nSomaR:=IIF(nSomaR<0,0,(nSomaR/((aRec[3])/2)))
nSomaG:=IIF(nSomaG<0,0,(nSomaG/((aRec[3])/2)))
nSomaB:=IIF(nSomaB<0,0,(nSomaB/((aRec[3])/2)))
oDlgTxt:GetDC()
aRec[3]:=0
FOR nX:=1 TO nStp  
   aRec[3]+=2  
   DEFINE BRUSH oBrush COLOR nRgb(nColorR1,nColorG1,nColorB1) 
   FillRect(oDlgTxt:hDC,aRec,oBrush:hBrush)  
   RELEASE BRUSH oBrush   
   aRec[1]+=2
   nColorR1:=IIF(nColorR2>=nColorR1,nColorR1+nSomaR,nColorR1-nSomaR)   
   nColorG1:=IIF(nColorG2>=nColorG1,nColorG1+nSomaG,nColorG1-nSomaG)   
   nColorB1:=IIF(nColorB2>=nColorB1,nColorB1+nSomaB,nColorB1-nSomaB)
NEXT
oDlgTxt:ReleaseDC()
   
RETURN(NIL) 

Posted: Tue Apr 24, 2007 12:34 pm
by Antonio Linares
Marcelo,

No uses Textura(oDlgTxt).

Crea un bitmap vertical con esos colores y crea un brush con él:

DEFINE BRUSH oBrush FILENAME "MyColors.bmp"

DEFINE DIALOG oDlg BRUSH oBrush TRANSPARENT

Posted: Tue Apr 24, 2007 1:24 pm
by kbelo
Continua a mesma coisa

DEFINE BRUSH oBrush FILENAME "teste.bmp"
DEFINE DIALOG oDlgOrdem BRUSH oBrush TRANSPARENT RESOURCE "CFGORDEM" icon Load_Obj(1) Font Load_Obj(2)

Posted: Tue Apr 24, 2007 6:44 pm
by Antonio Linares
Marcelo,

Publica aqui el RC de ese diálogo y lo construimos aqui con FWH 7.04 para que veas el resultado, gracias

Posted: Tue Apr 24, 2007 7:09 pm
by kbelo

Posted: Thu Apr 26, 2007 8:38 pm
by Raymundo Islas M.
Antonio :

Quisiera entender por lo que comentas, que el uso del BitMap es la mas correcta para aplicar algun degrado de colores a las aplicaciones, si este es el caso :

- El BitMap que dimensiones debera tener ?
- Todos los controles automaticamente asumiran el fondo ?
- Hay algun cuidado a tener para aplicar algun degrado ?

Lo pregunto, por que muero por ponerle degrados a un par de aplicaciones, y usando algunas funciones que han aportado algunos colegas de una u otra forma han surgido "problemas" :

- Pantallas que "parpadean"
- Controles que no toman el fondo
- Controles que no aparecen
- etc.


Saludos

Posted: Fri Apr 27, 2007 12:09 am
by Ruben Fernandez
Raymundo:

No soy Antonio, pero voy a decirte como lo hago y no tengo problemas.
Hago un bmp de 2 pixeles x 200 pixeles o de 200 pixeles x 2, con el Paint Shop Pro. El tamaño te cambia el degradado, horizontal o vertical.

El largo o el ancho del bmp debe ser igual o mayor al dialogo en el que lo vas a usar para que se vea bien.

Lo guardo como BMP, lo agrego a mi archivo .RC o .RES y luego desde
codigo:
Define Brush oBrush Resource "nombre_del_ bmp" (sin extension).
Define Dialog oDlg Resource "Ing_Cli" Font oFont BRUSH oBrush Transparent

Despues los say en el archivo rc o res los defino con el ID -1
Los demas controles como se hace normalmente y listo.

No olvides al salir de ese dialogo hacer un oBrush:End()
Otra cosa a tener en cuenta: muchos bmps incrementan bastante el tramaño de tu archivo de recursos.

Saludos

Ruben Fernandez.

Posted: Fri Apr 27, 2007 2:01 pm
by Raymundo Islas M.
Hola Ruben

Muchas gracias por tu aportacion, voy a probarlo de la manera que me indicas.

Saludos