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