Simões,
Obrigado por compartilhar teu Fork, compilei e sem mexer nos fontes o visual do Browse ja ficou mais agradavel.

Moderador: Moderadores
2013-05-30 11:30 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su>
* source/procmisc/hfrmtmpl.prg
* utils/designer/editor.prg
* utils/designer/hformgen.prg
* Few function names has been changed ( Hfrm_... to hwg_hfrm_... )
2012-12-13 22:10 UTC-0300 Luis Fernando Basso <lfbasso at via-rs.net>
* source/hcombo.prg
* CLASS hCheckComboBox
! fixed navegation in items disabled regardless of the state of SET EXACT
2012-12-26 10:45 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su>
- source/prnalone.c
- file has been deleted, because it isn't used
- source/procmisc/arr2str.c
+ contrib/misc/arr2str.c
* file moved to contrib, because it's function aren't used anywhere in libraries
- source/hfrmtmpl.prg
+ source/procmisc/hfrmtmpl.prg
* file moved to procmisc/, because it is more appropriate place for it
- source/repexec.prg
+ utils/hwreport/repexec.prg
* file moved to a more appropriate place
* utils/hwreport/bldexam.bat
* gtk/Makefile
* gtk/Makefile.linux
* gtk/Makefile.scr
* hwgui.hbm
* hwgui.hbp
* makedll.bc
* makefile.bc
* makefile.gcc
* makefile.pc
* Makefile.scr
* makefile.vc
* makefile.wc
* makefilepointer.bc
* make files has been adopted to above changes
2012-12-25 16:25 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su>
* source/hedit.prg
* source/guimain.prg
* Functions ParentGetDialog(), SetColorinFocus(), SetDisableBackColor(),
CheckFocus(), WhenSetFocus(), GetWindowParent()
moved from hedit.prg to guimain.prg, because they relates not to HEdit only.
2012-12-25 16:05 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su>
- contrib/menus
- directory has been deleted, because it is outdated
+ contrib/misc
+ directory has been added for miscellaneous code, which doesn't relate
directly to the purposes of the HwGUI
- source/procmisc/saymoney.prg
+ contrib/misc/saymoney.prg
- source/richtext.prg
+ contrib/misc/richtext.prg
* files moved, because they doesn't relate directly to the purposes of the HwGUI
* utils/designer/samples/saymoney.prg
* functions from source/procmisc/saymoney.prg has been added
* hwgui.hbm
* hwgui.hbp
* makedll.bc
* makefile.bc
* makefile.gcc
* makefile.pc
* Makefile.scr
* makefile.vc
* makefile.wc
* makefilepointer.bc
* make files has been changed to exclude saymoney.prg and saymoney.prg
2012-12-25 11:30 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su>
! source/procmisc/procscri.prg
! source/hfrmtmpl.prg
* There was a problem with execution of functions, declared in a "common" method
of a forms and reports, created with Designer. Now fixed.
O pai da criança abandonou ela por um bom tempo, ai veio um senhor, fez varias alterações, que ficaram muito boas e muita gente começou a usar, corrigiu vários bugs e sempre nos ajudou sem nenhuma retribuição...
2013-07-02 21:49 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* hwgui/source/common/debug/dbgentry.c
* reformatted keeping the same rules as used to format dbgentry.c in
Harbour GIT repository.
O pai da criança, vendo a criança crescer, tentou pegar a criança de volta, fez alguns carinhos, mais como a criança já não tinha mais seu perfil, resolveu novamente abandona-la e colocar no seu lugar a que ele estava criando...
Sadly, I think HWGUI is beyond repair. I have long since stopped using
the latest version as every change seemed to create a new
incompatibility. There are no decent code standards, and many of the
variable are not in English. A particular horrible coding practice seems
to be using numbers instead of #defines for Windows API constants.
A good (bad) example is hwgbrowse.prg.
--
Regards
Alex
Hi!
Thanks for your respond, i'm stop using the hwgui long time ago, some form and report i edit manualy w/o visual designer, some code i rewrote for console mode, i think that shock therapy will not prevent the hwgui, and i believe that Alexander will return to restore order.
Regards,
Alexey Myronenko
believe that Alexander will return to restore order.
A grosso modo, a compatibilidade da versão 2.17 foi pro espaço, lançou a 2.20 e se você quiser usa-la tem que mexer em todo teu código fonte, pois muita coisa foi mudada, e deixou de ter compatibilidade.
Quando o Kresin mudou da 2.17 para a 2.20, enviei diversas situações para ele, mais creio que o cara se encheu e me mandou a M... kkkk
HWGUI 2.19 build 3 ( 08.05.2015 )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[+] Rich syntax text editor has been added to utils
[*] Improved compatibility with 2.17 version.
[!] Some bug fixes and improvements
HWGUI 2.19 build 2 ( 27.01.2015 )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[*] :Enabled() SETGET method is introduced for all controls (HControl class),
:isEnabled() has been removed.
[*] :GetValue(), :SetValue() methods was removed and new :Value SETGET method is
introduced instead for those controls, which may input from the user.
[*] Improved compatibility with 2.17 version.
[!] Some bug fixes
HWGUI 2.19 ( 20.12.2014 )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[*] Real Unicode (utf-8) support.
[*] Binary containers added as a crossplatform alternative for resources ( rc files ).
[*] A virtual printer ".buffer" added. It allows to create a print
metafile and preview it if no one printer is installed
[*] Many improvements in utils ( dbc, debugger, designer, tutorial ).
[*] GTK version: significantly extended, improved compatibility with winapi version.
[*] Improved compatibility with 2.17 version.
[!] Some bug fixes, as usual
HWGUI 2.18 build 2 ( 03.04.2014 )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[+] The debugger: array inspector, object inspector, commands support
has been added.
[+] Duplex printing support added.
[*] The editor and the tutorial are gtk compatible now
[*] Processing of hot keys is implemented via hook procedures in both
winapi and gtk versions and works for any control now.
SET KEY GLOBAL command added.
[*] Combobox control can accept now multidimensional arrays.
[*] Improved compatibility with 2.17 version.
[!] Some bug fixes
HWGUI 2.18 ( 19.07.2013 )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[*] There was a lot of changes since last release, I can't now make
a well structured list of them, maybe, later ...
For now, see the Changelog.
1999/05/29-23:46 Alexander Kresin
Preprocessor: implementation of #command almost complete
Updated:
* source/hbpp/hbpp.c - main preprocessor file
* source/hbpp/harb.c
* source/hbpp/c.prg - sample file
gilbertosilverio escreveu:Simões,
Obrigado por compartilhar teu Fork, compilei e sem mexer nos fontes o visual do Browse ja ficou mais agradavel.
tive o mesmo problema que você Gilberto ao tentar usar a versão 2.18 ... eu não poderia colocar em produção uma versão instável, minha opinião
Pasta de C:\devl\hwgui-code\hwgui\contrib\ext_controls
11/12/2019 15:57 <DIR> .
11/12/2019 15:57 <DIR> ..
11/12/2019 15:57 144.529 hbrowsex.prg
11/12/2019 15:57 45.935 hcomboex.prg
11/12/2019 15:57 54.863 hctrlex.prg
11/12/2019 15:57 9.709 hgridex.prg
11/12/2019 15:57 6.194 hrectex.prg
11/12/2019 15:57 64.368 theme.c
6 arquivo(s) 325.598 bytes
2 pasta(s) 198.627.954.688 bytes disponÃveis
@ 13,070 BROWSE oBrw1 DATABASE SIZE 960,310 STYLE WS_TABSTOP ;
ON POSCHANGE {|| EVAL(oBrw2:bFirst), xEAN_DI:=xESTOQUE->EAN ,ESTOQUE_onPosChange(), oBrw2:Refresh(), ThisBUSCA:Refresh() }
oBrw1:nHeadHeight := 25
oBrw1:alias := 'xESTOQUE'
oBrw1:nColumns := 14
oBrw1:freeze := 1
oBrw1:lDispHead := .T.
oBrw1:lSep3d := .T.
oBrw1:lAdjRight := .F.
SELECT (oBrw1:alias)
oBrw1:AddColumn( HColumn():New('EAN' , FieldBlock( 'EAN' ) ,'C',16, 0 ,.F.,0,0,,,,,,,,,))
oBrw1:AddColumn( HColumn():New('Descrição' , FieldBlock( 'DESCRICAO' ), 'C',45, 0 ,.F.,0,0,,,,,,,,,)) // DIREITA
oBrw1:AddColumn( HColumn():New('Fornecedor', FieldBlock( 'FORNECEDOR' ),'C',15, 0 ,.F.,0,0,,,,,,,,,))
oBrw1:AddColumn( HColumn():New('Estoque' , FieldBlock( 'QTDEESTOQU') ,'N',08, 0 ,.F.,2,2,,,,,,,,,))
oBrw1:AddColumn( HColumn():New('Reservado' , FieldBlock( 'QTDEVENDA' ) ,'N',08, 0 ,.F.,2,2,,,,,,,,,))
oBrw1:AddColumn( HColumn():New('Sal Base' , FieldBlock( 'SALBASE' ) ,'C',70, 0 ,.F.,0,0,,,,,,,,,))
oBrw1:AddColumn( HColumn():New('Promoção' , FieldBlock( 'MINIMO' ), 'N',05, 0 ,.F.,1,1,,,,,,,,,)) // ESQUERDA
oBrw1:AddColumn( HColumn():New('Codigo' , FieldBlock( 'CODIGO' ) ,'N',06, 0 ,.F.,0,0,,,,,,,,,))
oBrw1:AddColumn( HColumn():New('P.M.C.' , FieldBlock( 'PRECOMC' ) ,'N',12, 2 ,.F.,2,2,,,,,,,,,))
oBrw1:AddColumn( HColumn():New('Preço Fab' , FieldBlock( 'TABELA01' ) ,'N',12, 2 ,.F.,2,2,,,,,,,,,))
oBrw1:AddColumn( HColumn():New('NCM' , FieldBlock( 'CLFI' ) ,'C',11, 0 ,.F.,2,2,,,,,,,,,))
oBrw1:AddColumn( HColumn():New('CEST' , FieldBlock( 'CEST' ) ,'C',09, 0 ,.F.,2,2,,,,,,,,,))
oBrw1:AddColumn( HColumn():New('P/N/E' , FieldBlock( 'CATEGORIA' ) ,'C',01, 0 ,.F.,2,2,,,,,,,,,))
oBrw1:AddColumn( HColumn():New('E/S/G/O' , FieldBlock( 'TIPO' ) ,'C',01, 0 ,.F.,2,2,,,,,,,,,))
oBrw1:bKeyDown := { |o,key|HB_SYMBOL_UNUSED(o),IIF(key==27,(hwg_EndDialog(oDlg:handle),.F.),a_BrwKeyfun(o,key))}
oBrw1:aColumns[02]:bHeadClick := {|| oBrw1_2_onHeadClick( ) } // 1 - Descricao
oBrw1:aColumns[03]:bHeadClick := {|| oBrw1_3_onHeadClick( ) } // 3 - Fornecedor
oBrw1:aColumns[06]:bHeadClick := {|| oBrw1_6_onHeadClick( ) } // 2 - sAL
oBrw1:aColumns[04]:bHeadClick := {|| oBrw1_4_onHeadClick( ) } // 9 - qtde
oBrw1:nFootRows := 1 // numero de colunas para mostrar os totais no final do browse
oBrw1:acolumns[01]:footing := [ ]
oBrw1:acolumns[02]:footing := [<F5>Descricao <F6>SalBase <F7>Fornecedor]
oBrw1:aColumns[01]:nJusFoot := DT_RIGHT
oBrw1:aColumns[02]:nJusFoot := DT_CENTER
FOR nG := 1 TO 14
oBrw1:aColumns[nG]:bColorFoot := {|ng| {x_BLUE, x_YELLOW} }
NEXT
FOR nI := 1 TO 14
oBrw1:aColumns[nI]:bColorBlock := ; // LETRA CAIXA LET_CX BARRA
{|nI| IF(xESTOQUE->QTDEESTOQU > 0, {x_RED, x_WHITE, x_BLACK, CINZA}, {x_BLACK, x_WHITE, x_BLACK, CINZA} )}
NEXT
oBrw1:aColumns[7]:bColorBlock := ;
{|n| IF( ( xESTOQUE->MINIMO < 10 .AND. xESTOQUE->(QTDEESTOQU-QTDEVENDA) > 0), ;
{x_BLUE, x_WHITE, x_WHITE, CINZA}, {CINZA, CINZA, CINZA, CINZA} )}
oBrw1:Anchor := 15
oBrw1:Refresh()
@ 13,390 BROWSE oBrw2 DATABASE SIZE 960,200 STYLE WS_TABSTOP AUTOEDIT ;
FIRST {|| XARDEX->( DBSEEK(xESTOQUE->(SUBSTR(DESCRICAO,1,49)), .F.) ) } ;
WHILE {|| XARDEX->(SUBSTR(DESCRICAO,1,49)) == xESTOQUE->(SUBSTR(DESCRICAO,1,49))} ;
ON UPDATE {|| kardex_onPosChange() }
oBrw2:nHeadHeight := 24
oBrw2:alias := 'xARDEX'
oBrw2:nColumns := 4
Obrw2:freeze := 1
SELECT (oBrw2:alias)
oBrw2:AddColumn( HColumn():New('Descrição', FieldBlock( 'DESCRICAO' ) ,'C',50, 0 ,.F.,0,0,,,,,,,,,)) // ESQUERDA
oBrw2:AddColumn( HColumn():New('N Lote' , FieldBlock( 'nlote' ) ,'C',20, 0 ,.T.,0,0,,,,,,,,,))
oBrw2:AddColumn( HColumn():New('Validade' , FieldBlock( 'validade') ,'C',10, 0 ,.T.,0,0,'99/9999',,,,,,,,)) // CENTRO
oBrw2:AddColumn( HColumn():New('Qtde' , FieldBlock( 'qtde' ) ,'N',06, 0 ,.T.,1,2,'9999999',,,,,,,,))
oBrw2:acolumns[03]:footing := [Qtde Total: ]
oBrw2:acolumns[04]:footing := TRANSF( fVLR01, [@E 999,999] )
oBrw2:aColumns[03]:nJusFoot := DT_RIGHT
oBrw2:aColumns[04]:nJusFoot := DT_RIGHT
FOR nG := 1 TO 4
oBrw2:aColumns[nG]:bColorFoot := {|ng| {x_BLUE, x_YELLOW} }
NEXT
oBrw2:Anchor := ANCHOR_LEFTABS + ANCHOR_BOTTOMABS //12+ ANCHOR_RIGHTABS
oBrw2:Refresh()
Se a 2.17 ainda tem big, eu ainda não recebi do meu sistema esse bug, inclusive do meu usuário que é muito exigente, então considero estável a versão que eu uso, esse visual preferi usar somente no browser, pra que mais do que isso?
Itamar M. Lins Jr. Lins writes:
> Hi!
> Will 2.18 recover features of Luis Basso ?
Yes. It will be very helpful if someone give a list of these features,
which he use, with a short explanation or a sample prg.
Regards, Alexander.
Hi Alex,
2013/6/20 Alexander S.Kresin <alex@...>
> Przemyslaw Czerpak writes:
>
> >
> > Fatal code quality which begins to be problematic to keep it alive.
> > Nothing amazing but something what has to happen sooner or later.
>
> This is exactly what I'm talking about last time.
>
And what I was meaning when you came back to hwgui and I told about the
try-and-go growth of the library.
>
> > But it covers only very small subset of problems created by code
> > which converts windows handles and pointers to numeric values and
> > only for Win32. The time shows that it was bad decision because
> > nothing has really changed in HWGUI code in next years.
>
> This conversion of pointers to numeric values ( HWG_PTRTOULONG()
> function ), which is used everywhere in the code creates those problems
> with focus, colors, etc.
> HwGUI 2.16c is free of this problem, this is one of the reasons why I
> suggest to get it as a base. It isn't ideal :), but it is much more clean.
>
>
I already agreed with you and it seems to be the only way to have hwgui
working good.
I think that's better to add on a rocky base the new features, than to
patch erratically a collapsing building.
All the contributions of Basso and Culik since 2.16c could be implemented
after purging them of pointers bugs.
I'm trying to resume what, after 2.16c, was a patch and what a new feature.
Maybe applying the introduced patches, before to add the enhancements,
could be the right way.
Regards.
Maurizio
gilbertosilverio escreveu:Acho que e um Bug...
Se montar o Browse neste formato os descritivos das colunas so aparece se você clicar e segurar sobre as colunas.
Na primeira imagem posicionei sobre os descritivos da coluna e segurei teclado, na segunda imagem nao aparecem os descritivos.
P_CreateColumn( oBrw1, V1[15], V3[15], "COPG", nORDEM, V2[15], V4[15], V5[15])
P_CreateColumn( oBrw1, V1[16], V3[16], "COPG", nORDEM, V2[16], V4[16], V5[16])
oBrw1:bKeyDown := { |o,key|HB_SYMBOL_UNUSED(o),IIF(key==27,(hwg_EndDialog(oDlg_PESQPGTO:handle),.F.),a_BrwKey_01(o,key,"COPG"))}
oBrw1:Refresh()
@ 320,340 BUTTON oButton5 CAPTION "Sai&r" SIZE 100,32 STYLE WS_TABSTOP ;
ON CLICK {|| xREC:=COPG->(RECNO()), CARREGA_PGTO(@xREC), DBCLOSEALL(), oDLG_PESQPGTO:Close() }
ACTIVATE DIALOG oDlg_PESQPGTO
return nil
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *>
FUNCTION P_CreateColumn( oBrw, oCol, oHead, oAr, seq, xPIC, oLen, oDec )
Local i
Local nArea := &oAr->(select())
IF VALTYPE(&oAr->(&oCol)) = [C]
oBrw:AddColumn( HColumn():New( oHead , FieldWBlock( oCol, nArea ),[C], oLen , oDec , .F. ,DT_LEFT , DT_LEFT , xPIC ))
ELSEIF VALTYPE(&oAr->(&oCol)) = [N]
oBrw:AddColumn( HColumn():New( oHead , FieldWBlock( oCol, nArea ),[N], oLen , oDec , .F. ,DT_RIGHT , DT_RIGHT , xPIC ))
ELSEIF VALTYPE(&oAr->(&oCol)) = [D]
oBrw:AddColumn( HColumn():New( oHead , FieldWBlock( oCol, nArea ),[D], oLen , oDec , .F. ,DT_RIGHT , DT_RIGHT , xPIC ))
ELSE
oBrw:AddColumn( HColumn():New( oHead , FieldWBlock( oCol, nArea ), , oLen , oDec , .F. ,DT_CENTER, DT_CENTER, xPIC ))
ENDIF
oBrw:Refresh()
RETURN Nil
Usuários vendo este fórum: Nenhum usuário registrado online e 4 visitantes