Jump to content
Fivewin Brasil

Get com bordas redondas.


kapiaba

Recommended Posts

  • Replies 83
  • Created
  • Last Reply

Top Posters In This Topic

citação:

Lindo de morrer...

mas cadê os códigos icon_smile_big.gif

Abraços..

Luiz Arruda - Corumba(MS)

FiveWin 9.04

[x]Harbour

xDev

WS

--

Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia.

-

Não Abandone Seu Tópicoid=red>


id=quote>id=quote>

Examente, cadê os codigos / fontes?? Assim não dá... kkkk

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Link to comment
Share on other sites


#include "fivewin.ch"

function main()

local odlg, oget, cVar:="This a TGET Gradient Test",ogetb, cVarb:=space(50)

define dialog odlg SIZE 600, 600

@ 5, 10 get oGet var cVar of odlg pixel size 120, 10 color CLR_WHITE when( ! empty( cVarb ) )

@ 20, 10 get cVarb of odlg pixel size 120, 10 color CLR_WHITE

@ 35, 10 get cVar of odlg pixel size 120, 10 color CLR_WHITE

@ 50, 10 get cVarb of odlg pixel size 120, 10 noborder color CLR_WHITE

@ 65, 10 get cVar of odlg pixel size 120, 10 noborder color CLR_WHITE

@ 80, 10 get cVarb of odlg pixel size 120, 10 noborder color CLR_WHITE

@ 95, 10 get cVar of odlg pixel size 120, 10 noborder color CLR_WHITE

@ 110, 10 get cVarb of odlg pixel size 120, 10 noborder color CLR_WHITE

@ 125,10 say "this a test" of odlg pixel

activate dialog odlg centered on init( GradGet( Self ) )

return nil

function GradGet( _oDlg )

local oControl

local aColors := { { 0.4, nRGB( 75, 144, 223 ), nRGB( 41, 85, 145 ) },;

{ 0.6, nRGB( 24, 61, 118 ), nRGB( 50, 95, 158 ) } }

local hBmp, n

local oBrush

for n = 1 to Len(_oDlg:aControls)

oControl:= _oDlg:aControls[ n ]

if oControl:ClassName() == "TGET"

oControl:lTransparent = .T.

oControl:nTxtStyle = 4

hBmp = GradientBmp( oControl, oControl:nWidth, oControl:nHeight, aColors )

oBrush = TBrush():New( )

oBrush:hBrush = CreatePatternBrush( hBmp )

oControl:SetBrush( oBrush )

DeleteObject( hBmp )

endif

next

return Nil

function GradientBmp( oWnd, nWidth, nHeight, aColors )

local hDC, hBmp, hBmpOld

local aRect := GetClientRect( oWnd:hWnd )

default nHeight := aRect[ 3 ] , nWidth := aRect[ 4 ]

hDC = CreateCompatibleDC( oWnd:GetDC() )

hBmp = CreateCompatibleBitMap( oWnd:hDC, nWidth, nHeight )

hBmpOld = SelectObject( hDC, hBmp )

GradientFill( hDC, 0, 0, nHeight, nWidth, aColors )

SelectObject( hDC, hBmpOld )

DeleteDC( hDC )

DeleteObject( hBmpOld )

oWnd:ReleaseDC()

return hBmp

id=code>id=code>

IMportante:

você precisa alterar a class TGET.

Procure por esse codigo:

#define EM_SETCUEBANNER 0x1501

Apos ele adicione isso

#define TRANSPARENT 0x01

Apos todas as DATA no incil da class

adicione esse

DATA nTxtStyle

dentro do method NEW()

adicone isso

::nTxtStyle = nOR( ETO_CLIPPED, ETO_OPAQUE )

faça o mesmo no method REDEFINE

::nTxtStyle = nOR( ETO_CLIPPED, ETO_OPAQUE )

Agora substitua todo o METHOD PAINT por esse:


METHOD Paint() CLASS TGet

local aInfo := ::DispBegin()

local hOldFont

local nClrBtnTxt, nClrBtnPane

local nOldMode

nClrBtnTxt := ::nClrText

nClrBtnPane := ::nClrPane

if ::oBrush != nil

FillRect( ::hDC, GetClientRect( ::hWnd ), ::oBrush:hBrush )

else

CallWindowProc( ::nOldProc, ::hWnd, WM_ERASEBKGND, ::hDC, 0 )

endif

if IsWindowEnabled( ::hWnd )

CallWindowProc( ::nOldProc, ::hWnd, WM_PAINT, ::hDC, 0 )

else

if ::lDisColors

SetTextColor( ::hDC, GetSysColor( COLOR_GRAYTEXT ) )

SetBkColor( ::hDC, GetSysColor( COLOR_WINDOW ) )

nClrBtnPane := GetSysColor( COLOR_WINDOW )

else

if ValType( ::nClrTextDis ) == "B"

SetTextColor( ::hDC, Eval( ::nClrTextDis ) )

elseif ValType( ::nClrTextDis ) == "N"

if ::nClrTextDis >= 0

SetTextColor( ::hDC, ::nClrTextDis )

nClrBtnTxt := ::nClrTextDis

else

SetTextColor( ::hDC, ::nClrText )

endif

endif

if ValType( ::nClrPaneDis ) == "B"

SetBkColor( ::hDC, Eval( ::nClrPaneDis ) )

elseif ValType( ::nClrPaneDis ) == "N"

if ::nClrPaneDis >= 0

SetBkColor( ::hDC, ::nClrPaneDis )

nClrBtnPane := ::nClrPaneDis

else

SetBkColor( ::hDC, ::nClrPane )

endif

endif

endif

if ::oFont != nil

hOldFont = SelectObject( ::hDC, ::oFont:hFont )

endif

nOldMode = SetBkMode( ::hDC, TRANSPARENT )

do case

case lAnd( GetWindowLong( ::hWnd, GWL_STYLE ), ES_CENTER )

SetTextAlign( ::hDC, TA_CENTER )

if ::lSpinner

ExtTextOut( ::hDC, 1, ( ::nWidth() - 3 - GetSysMetrics( SM_CYHSCROLL ) ) / 2,;

{ 0, 0, ::nHeight(), ::nWidth() }, GetWindowText( ::hWnd ), ::nTxtStyle )

else

ExtTextOut( ::hDC, 1, ( ::nWidth() - 3 ) / 2,;

{ 0, 0, ::nHeight(), ::nWidth() }, GetWindowText( ::hWnd ), ::nTxtStyle )

endif

case lAnd( GetWindowLong( ::hWnd, GWL_STYLE ), ES_RIGHT )

SetTextAlign( ::hDC, TA_RIGHT )

if ::lSpinner

ExtTextOut( ::hDC, 1, ::nWidth() - 7 - GetSysMetrics( SM_CYHSCROLL ),;

{ 0, 0, ::nHeight(), ::nWidth() }, GetWindowText( ::hWnd ), ::nTxtStyle )

else

if ValType( ::bAction ) == "B"

ExtTextOut( ::hDC, 1, ::nWidth() - 7 - ::nHeight,;

{ 0, 0, ::nHeight(), ::nWidth() }, GetWindowText( ::hWnd ), ::nTxtStyle )

else

ExtTextOut( ::hDC, 1, ::nWidth() - 7 ,;

{ 0, 0, ::nHeight(), ::nWidth() }, GetWindowText( ::hWnd ), ::nTxtStyle )

endif

endif

otherwise

SetTextAlign( ::hDC, TA_LEFT )

ExtTextOut( ::hDC, 1, 2,;

{ 0, 0, ::nHeight(), ::nWidth() }, GetWindowText( ::hWnd ), ::nTxtStyle )

endcase

if ::oFont != nil

SelectObject( ::hDC, hOldFont )

endif

SetBkMode( ::hDC, nOldMode )

endif

if ValType( ::bPainted ) == "B"

Eval( ::bPainted, ::hDC, ::cPS, Self )

endif

// button

if ::oBtn != nil .and. ::lBtnTransparent

::oBtn:SetColor( nClrBtnTxt, nClrBtnPane )

endif

::DispEnd( aInfo )

return 1

id=code>id=code>

é isso ai :)

pra por borda use o RoundRect como esta no inicil deste topico.

icon_smile.gif

xHarbour1.1.0|Fwh9.2|Bcc55|Ribbonbar.lib|Pelles|MySQL|PostgreSQL

http://www.redstarsoft.net

user.jpg

Link to comment
Share on other sites

Para usar Brush diferentes nos GET´s


function GradGet( _oDlg )

local oControl

local aColors := ARRAY( 3 )

local hBmp, n

local oBrush

aColors [ 1 ] = { { 0.4, nRGB( 231, 240, 244 ), nRGB( 159, 212, 240 ) },;

{ 0.6, nRGB( 126, 188, 224 ), nRGB( 188, 227, 244 ) } }

aColors [ 2 ] = { { 0.4, nRGB( 255, 253, 219 ), nRGB( 255, 231, 144 ) },;

{ 0.6, nRGB( 255, 215, 76 ), nRGB( 255, 231, 153 ) } }

for n = 1 to Len(_oDlg:aControls)

oControl:= _oDlg:aControls[ n ]

if oControl:ClassName() == "TGET"

oControl:lTransparent = .T.

oControl:nTxtStyle = 4

hBmp = GradientBmp( oControl,;

oControl:nWidth,;

oControl:nHeight,;

aColors[ If( n%2 == 0, 1, 2 ) ] )

oBrush = TBrush():New( , n )

oBrush:hBrush = CreatePatternBrush( hBmp )

oControl:SetBrush( oBrush )

DeleteObject( hBmp )

endif

next

return Nil

id=code>id=code>

xHarbour1.1.0|Fwh9.2|Bcc55|Ribbonbar.lib|Pelles|MySQL|PostgreSQL

http://www.redstarsoft.net

user.jpg

Link to comment
Share on other sites

Lailton, tá maravilhoso. Quase igual ao PODER DA VLIB.LIB, o intuito deste tópico postado por mim, não era gerar nenhuma polemica em relação a VLIB.LIB do Vagner, que por sinal, é maravilhosa. Necessita de ajustes é verdade. Mas ela é maravilhosa. EU RECOMENDO.

Agradeço de coração, sua VALIOSA CONTRIBUIÇÃO para nós, POBRES MORTAIS do FIVEWIN the best.

Abraços karinhosos.

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Link to comment
Share on other sites

citação:

Lailton, tá maravilhoso. Quase igual ao PODER DA VLIB.LIB, o intuito deste tópico postado por mim, não era gerar nenhuma polemica em relação a VLIB.LIB do Vagner, que por sinal, é maravilhosa. Necessita de ajustes é verdade. Mas ela é maravilhosa. EU RECOMENDO.

Agradeço de coração, sua VALIOSA CONTRIBUIÇÃO para nós, POBRES MORTAIS do FIVEWIN the best.

****************************

*Abraços karinhosos. *

****************************

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe


id=quote>id=quote>

Hum! Sei, depois deste SUPER ABRAÇO KARINHOSO...

acho que tem mais saopaulino por aqui, neh doutor kapi!!

kkkkkkkkkkkkk

Ambrosio de Barros Filho.

JRAMBRO

Iniciante: Por eqto ainda no Clipper5.0

Link to comment
Share on other sites

citação:

citação:

Lailton, tá maravilhoso. Quase igual ao PODER DA VLIB.LIB, o intuito deste tópico postado por mim, não era gerar nenhuma polemica em relação a VLIB.LIB do Vagner, que por sinal, é maravilhosa. Necessita de ajustes é verdade. Mas ela é maravilhosa. EU RECOMENDO.

Agradeço de coração, sua VALIOSA CONTRIBUIÇÃO para nós, POBRES MORTAIS do FIVEWIN the best.

****************************

*Abraços karinhosos. *

****************************

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe


id=quote>id=quote>

Hum! Sei, depois deste SUPER ABRAÇO KARINHOSO...

acho que tem mais saopaulino por aqui, neh doutor kapi!!

kkkkkkkkkkkkk

Ambrosio de Barros Filho.

JRAMBRO

Iniciante: Por eqto ainda no Clipper5.0


id=quote>id=quote>

KKKKKKKKKKKKKKKK

AKI, TEM UM BANDO DE LOKOS, LOKOS POR TI CORINTHIANS!!

Abraços karinhosos para você também, meu rei.

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Link to comment
Share on other sites

Bom dia Lailton..

Nos method New e Redefine tem que por em algun lugar expecifico ???

Fiz as alterações mas os Gets continuam quadradinhos da Silva... Tanto em @Say Get como em Redefine Get .. com @say os Get ficam azul mas em Redefine continuam branquinhos branquinhos...

Abraços..

Luiz Arruda - Corumba(MS)

FiveWin 9.04

[x]Harbour

xDev

WS

--

Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia.

-

Não Abandone Seu Tópicoid=red>

Link to comment
Share on other sites

citação:

Para FOLDER, você não deve passar o objeto da Dialog e sim da Dialog do Folder. (Acredito eu)

Você passaria o oFolder:aDialogs[1...n] como parâmetro.

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY


id=quote>id=quote>

Eu já tinha feito isso..

Vou fazer mas uns testes e reporto...

Luiz Arruda - Corumba(MS)

FiveWin 9.04

[x]Harbour

xDev

WS

--

Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia.

-

Não Abandone Seu Tópicoid=red>

Link to comment
Share on other sites

teste isso:


#INCLUDE "FIVEWIN.CH"

FUNCTION MAIN()

//

//

LOCAL ODLG, ;

DNOM := SPACE(40), ;

DSURNOM := SPACE(40), ;

DTEL := SPACE(10), ;

DPOSTAL := SPACE(05), ;

DREFCDE := SPACE(40), ;

LSAVE := .F. , ;

DVILLE := SPACE(30),aFont

//

SetResDebug( .t. )

DEFINE FONT aFONT NAME "Times New Roman" SIZE 0,-14 BOLD

//

DEFINE DIALOG ODLG RESOURCE "DEV02"

//

REDEFINE GET DNOM ID 201 OF ODLG PICTURE REPLICATE("X",40)

REDEFINE GET DSURNOM ID 202 OF ODLG PICTURE REPLICATE("X",40)

REDEFINE GET DVILLE ID 203 OF ODLG PICTURE REPLICATE("!",30)

REDEFINE GET DREFCDE ID 204 OF ODLG

REDEFINE GET DTEL ID 205 OF ODLG PICTURE "@R XX-XX-XX-XX-XX"

REDEFINE GET DPOSTAL ID 206 OF ODLG PICTURE "@Z 99999"

//

REDEFINE BTNBMP RESOURCE "BUTCAN" ID 02 OF ODLG ;

ACTION(LSAVE := .F., ODLG:END() )

//

REDEFINE BTNBMP RESOURCE "BUTOK" ID 01 OF ODLG ;

ACTION LSAVE := .T., ODLG:END()

//

ACTIVATE DIALOG ODLG CENTERED on init( GradGet( Self ) )

AFONT:END()

CheckRes()

RETURN NIL

function GradGet( _oDlg )

local oControl

local aColors := { { 0.4, nRGB( 75, 144, 223 ), nRGB( 41, 85, 145 ) },;

{ 0.6, nRGB( 24, 61, 118 ), nRGB( 50, 95, 158 ) } }

local hBmp, n

local oBrush

for n = 1 to Len(_oDlg:aControls)

oControl:= _oDlg:aControls[ n ]

if oControl:ClassName() == "TGET"

oControl:lTransparent = .T.

hBmp = GradientBmp( oControl, oControl:nWidth, oControl:nHeight, aColors )

oBrush = TBrush():New( , , , , hBmp )

oControl:SetBrush( oBrush )

DeleteObject( hBmp )

endif

next

return Nil

id=code>id=code>

xHarbour1.1.0|Fwh9.2|Bcc55|Ribbonbar.lib|Pelles|MySQL|PostgreSQL

http://www.redstarsoft.net

user.jpg

Link to comment
Share on other sites

Alterando a class do Fivewim responsavel pelo MsgItem.

Como fazer:

editar arquivo "tmsgitem.prg"

Dentro do method PAINT

faça essa alteração

//WndBoxIn( hDC, 2, nLeft - 4, ::oMsgBar:nHeight - 2, nLeft - 3 )

//By Lailton

hPen:= GradientBmp( oWnd:oMsgBar, 1, 20, {{0.50,nRGB(192,195,197),nRGB(098,099,101)},{0.50,nRGB(028,029,031),nRGB(020,021,023)}} )

DrawBitmap( hDc, hPen, 0, nLeft -3 )

adicione essas funcoes.

function MsgBar2007()

local hDc:=oWnd:oMsgBar

local h1Bmp := GradientBmp(hDc,1,24,{{0.50,nRGB(192,195,197),nRGB(098,099,101)},{0.50,nRGB(028,029,031),nRGB(020,021,023)}})

return h1Bmp

//-----------------------------------------------------------------------//

function GradientBmp( oWnd, nWidth, nHeight, aColors )

local hDC, hBmp, hBmpOld

local aRect := GetClientRect( oWnd:hWnd )

default nHeight := aRect[ 3 ] , nWidth := aRect[ 4 ]

hDC = CreateCompatibleDC( oWnd:GetDC() )

hBmp = CreateCompatibleBitMap( oWnd:hDC, nWidth, nHeight )

hBmpOld = SelectObject( hDC, hBmp )

GradientFill( hDC, 0, 0, nHeight, nWidth, aColors )

SelectObject( hDC, hBmpOld )

DeleteDC( hDC )

DeleteObject( hBmpOld )

oWnd:ReleaseDC()

return hBmp

//-----------------------------------------------------------------------//

Pronto

basta declarar o 2007 no message bar agora...

exemplo:

SET MESSAGE OF oWnd TO "Redstarsoft Informática =]" keyboard 2007 color nRGB(255,255,255)

ownd:oMsgbar:dateon()

ownd:oMsgbar:clockon()

Abraço;

xHarbour1.1.0|Fwh9.2|Bcc55|Ribbonbar.lib|Pelles|MySQL|PostgreSQL

http://www.redstarsoft.net

user.jpg

Link to comment
Share on other sites

citação:

poderia postar seu codigo aqui para que eu possa testar ?

abraço.

xHarbour1.1.0|Fwh9.2|Bcc55|Ribbonbar.lib|Pelles|MySQL|PostgreSQL

http://www.redstarsoft.net

user.jpg


id=quote>id=quote>

Tá na mão.. ai vai id=blue>


Define Dialog odlg Resource "#1001" Title "Cadastro"

Dlg:bPainted:= {|| SetGetRounded(oDlg, CLR_BLUE) }

Redefine xBrowse obrw Fields ;

Trans(Cadastro->Codigo,"999"),Cadastro->Associado,Cadastro->Ponto;

Headers "Cod","Nome","Ponto" ID 4002 Of odlg ;

On change PegaDados(oGet,cNome,DatCad,DtNasc,Ccpf)

oBrw:bSeek := {|c| PSeek( c, cPesquisa, oSay, oBrw ) }

Redefine Say oSay VAR cPesquisa ID 4005 OF oDlg PICTURE "@!"

oSay:SetColor(CLR_LGREEN)

Redefine Folder Ofol Prompt "&Dados","Pagamentos" ;

Dialogs "#1002","#1003" ID 4003 of odlg

Redefine Get oGet[1] Var cNome ID 4017 of oFol:aDialogs[1] color CLR_WHITE,CLR_BLUE

Redefine Get oGet[2] Var DatCad ID 4018 of oFol:aDialogs[1] color CLR_BLACK,CLR_WHITE

Redefine Get oGet[3] Var DtNasc ID 4019 of oFol:aDialogs[1] color CLR_BLACK,CLR_WHITE

Redefine Get oGet[4] Var cCpf ID 4020 of oFol:aDialogs[1] color CLR_BLACK,CLR_WHITE

Redefine get oget[5] var cvar ID 4006 of odlg color CLR_WHITE,CLR_BLUE //Esse fiz pra teste fora do folder e funfaid=red>

Redefine Button obtn Prompt "Saida" ID 4007 Of odlg Action odlg:end()

Activate Dialog oDlg Centered;

on init( GradGet( Self ) )

Return

id=code>id=code>

Luiz Arruda - Corumba(MS)

FiveWin 9.04

[x]Harbour

xDev

WS

--

Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia.

-

Não Abandone Seu Tópicoid=red>

Editado por - ico on 17/09/2009 14:29:45

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...