hwgui 2.17

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

hwgui 2.17

Mensagem por alxsts »

alxsts escreveu:No xHarbour, este tipo de codeblock é delimitado por colchetes []
Opa... não tenho o xhbdiff.txt em mãos agora mas me lembrei que não são colchetes e sim <> (maior e menor).
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

hwgui 2.17

Mensagem por sygecom »

alxsts escreveu:Olá!
sygecom escreveu:falta do ON GETFOCUS em alguns componentes,
Não consegue capturar o evento com aquele método ON OTHER MESSAGES (não me lembro se o nome é exatamente este mas é algo assim).
sygecom escreveu:no xharbour ele diz que falta um }
Este código é chamado de codeblock extendido. Veja a quantidade de código que existe entre as chaves {}, tendo inclusive declaração de variáveis LOCAL. Este é o padrão Harbour. No xHarbour, este tipo de codeblock é delimitado por colchetes [], conforme escrito naquele arquivo xhbdiff.txt. É só trocar as chaves pelos colchetes.
Mestre Alexnadre,
Obrigado pela dica eu resolvido esse caso usando no lugar do ON GETFOCUS a clasula WHEN, na verdade esse caso o Kresin tirou com razão estava duplicado, ambas fazem a mesma coisa no GET.
alxsts escreveu:
alxsts escreveu:No xHarbour, este tipo de codeblock é delimitado por colchetes []
Opa... não tenho o xhbdiff.txt em mãos agora mas me lembrei que não são colchetes e sim <> (maior e menor).
Obrigado pela dica, nem lembrava mais do xhb-diff.txt, isso que usei ele a poucos dias quando estava ainda na etapa do apenas HARBOUR sem hwgui kkkkk mas vou consultar certamente deve ter mais outras coisas como essa.Obrigado.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

hwgui 2.17

Mensagem por JoséQuintas »

SE O XHARBOUR ACEITAR, pode fazer algo deste tipo:

antes:

Código: Selecionar todos

@ 0,0 PANEL oPanel OF oTelaPrincipal SIZE 0,37

vPosicao=0
@ vPosicao,2 OWNERBUTTON OF oPanel;
   ON CLICK {|| Pesquisa_Associado() } ;
   SIZE 36,36 ;
   FLAT;
   BITMAP oBmpLogo9 FROM RESOURCE TRANSPARENT;
   TOOLTIP "Cadastro de Associado"

vPosicao=vPosicao+39
@ vPosicao,2 OWNERBUTTON OF oPanel;
   ON CLICK {|| FRMcad_mensal("C") } ;
   SIZE 36,36 ;
   FLAT;
   BITMAP oBmpLogo12 FROM RESOURCE TRANSPARENT;
   TOOLTIP "Cadastro de Mensalidade"

vPosicao=vPosicao+39
@ vPosicao,2 OWNERBUTTON OF oPanel;
   ON CLICK {|| ShellExecute("calc") } ;
   SIZE 36,36 ;
   FLAT;
   BITMAP oBmpLogo3 FROM RESOURCE TRANSPARENT;
   TOOLTIP "Calculadora"

vPosicao=vPosicao+39
@ vPosicao,2 OWNERBUTTON OF oPanel;
   ON CLICK {|| indexa() } ;
   SIZE 36,36 ;
   FLAT;
   BITMAP oBmpLogo7 FROM RESOURCE TRANSPARENT;
   TOOLTIP "Reindexa o Banco de Dados"

vPosicao=vPosicao+39
@ vPosicao,2 OWNERBUTTON OF oPanel;
   ON CLICK {|| Back_up() } ;
   SIZE 36,36 ;
   FLAT;
   BITMAP oBmpLogo2 FROM RESOURCE TRANSPARENT;
   TOOLTIP "Realizar Back-Up do Banco de Dados"

vPosicao=vPosicao+39
@ vPosicao,2 OWNERBUTTON OF oPanel;
   ON CLICK {|| Sendemail("suporte@xxx",1) } ;
   SIZE 36,36 ;
   FLAT;
   BITMAP oBmpLogo8 FROM RESOURCE TRANSPARENT;
   TOOLTIP "Suporte On-Line"

vPosicao=vPosicao+39
@ vPosicao,2 OWNERBUTTON OF oPanel;
   ON CLICK {|| sobre() } ;
   SIZE 36,36 ;
   FLAT;
   BITMAP oBmpLogo5 FROM RESOURCE TRANSPARENT;
   TOOLTIP "Informações Sobre a Informática"

vPosicao=vPosicao+39
@ vPosicao,2 OWNERBUTTON OF oPanel;
   ON CLICK {|| Ajuda_SCM() } ;
   SIZE 36,36 ;
   FLAT;
   BITMAP oBmpLogo13 FROM RESOURCE TRANSPARENT;
   TOOLTIP "Informações Sobre o SCM"

vPosicao=vPosicao+39
@ vPosicao,2 OWNERBUTTON OF oPanel;
   ON CLICK {|| Sair() } ;
   SIZE 36,36 ;
   FLAT;
   BITMAP 1005 FROM RESOURCE TRANSPARENT;
   TOOLTIP "Sair do Sistema"
Depois:

Código: Selecionar todos

@ 0,0 PANEL oPanel OF oTelaPrincipal SIZE 0,37
vPosicao=0
FOR EACH aItem IN { ;
   { oBmpLogo9,  "Cadastro de Associado",             { || Pesquisa_Associado() } }, ;
   { oBmpLogo12, "Cadastro de Mensalidade",           { || frmCad_Mensal( "C" ) } }, ;
   { oBmpLogo3,  "Calculadora",                       { || ShellExecute( "calc" ) } }, ;
   { oBmpLogo7,  "Reindexa o Banco de Dados",         { || Indexa() } }, ;
   { oBmpLogo2,  "Realizar Backup do Banco de Dados", { || Back_up() } }, ;
   { oBtmpLogo8, "Suporte On-Line",                   { || SendEmail( "suporte@xxx",1) } }, ;
   { oBmpLogo5, "Informações sobre a Sygecom Informática", { || Sobre() } }, ;
   { oBmpLogo13, "Informações sobre o SCM",           { || Ajuda_SCM() } }, ;
   { 1005,       "Sair do Sistema",                   { || Sair() } } }

   @ vPosicao, 2 OWNERBUTTON OF oPanel ;
      ON CLICK aItem[ 3 ] ;
      SIZE 36, 36 ;
      FLAT ;
      BITMAP aItem[1] FROM RESOURCE TRANSPARENT ;
      TOOLTIP aItem[2]
   vPosicao += 39
NEXT
De certa forma, isso reduz as diferenças harbour/xharbour, ou de versão de hwgui.
Aconteça o que acontecer, será um tempo gasto e bem aproveitado.
alxsts escreveu:Este código é chamado de codeblock extendido. Veja a quantidade de código que existe entre as chaves {}, tendo inclusive declaração de variáveis LOCAL. Este é o padrão Harbour. No xHarbour, este tipo de codeblock é delimitado por colchetes [], conforme escrito naquele arquivo xhbdiff.txt. É só trocar as chaves pelos colchetes.
Que eu me lembre, colchetes são pra array ou string ou hash.
Não olhei o xhbdiff.txt pra ver que situação é essa diferente, se seria algo deste tipo.

Código: Selecionar todos

cTxt := [ {|| teste() } ]
bCode := &cTxt
ou fonte compilável, usando hb_Compile()
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

hwgui 2.17

Mensagem por JoséQuintas »

Vixe.

Eu não uso quase nada de hwgui.
Teste básico da 2.17

Código: Selecionar todos

d:\github\dlgauto\source>c -Ld:\github\hwgui217 hwgui217.hbc hwgui.hbc

d:\github\dlgauto\source>d:\fontes\build\build.exe -Ld:\github\hwgui217 hwgui217.hbc hwgui.hbc

d:\github\dlgauto\source>HBMK2 test.hbp -Ld:\github\hwgui217 hwgui217.hbc hwgui.hbc -w3 -es2 -m -n -strip -compr -wo
rkdir=c:\temp -q -Id:\fontes\build\
hbmk2: Processing environment options: -comp=mingw
hbmk2: Processing configuration: d:\harbour\bin\hbmk.hbc
Harbour 3.2.0dev (r2402101027)
Copyright (c) 1999-2021, https://harbour.github.io/

lib_hwgui.prg:132: error E0030  Syntax error "syntax error at 'DIALOG'"

lib_hwgui.prg:134: error E0030  Syntax error "syntax error at 'DIALOG'"

lib_hwgui.prg:139: warning W0003  Variable 'XDLG' declared but not used in function '128:GUI_DIALOGACTIVATE'

lib_hwgui.prg:159: error E0030  Syntax error "syntax error at 'DIALOG'"

lib_hwgui.prg:163: warning W0003  Variable 'XDLG' declared but not used in function '143:GUI_DIALOGCREATE'

lib_hwgui.prg:163: warning W0003  Variable 'NROW' declared but not used in function '143:GUI_DIALOGCREATE'

lib_hwgui.prg:163: warning W0003  Variable 'NCOL' declared but not used in function '143:GUI_DIALOGCREATE'

lib_hwgui.prg:163: warning W0003  Variable 'NWIDTH' declared but not used in function '143:GUI_DIALOGCREATE'

lib_hwgui.prg:163: warning W0003  Variable 'NHEIGHT' declared but not used in function '143:GUI_DIALOGCREATE'

lib_hwgui.prg:163: warning W0003  Variable 'CTITLE' declared but not used in function '143:GUI_DIALOGCREATE'
3 errors

No code generated.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

hwgui 2.17

Mensagem por JoséQuintas »

hwgui217.png
dlgauto compilou com hwgui 2.17, mas nada mais funciona.

Não que hwgui 2.17 seja problema, apenas as duas não são compatíveis.
Não sai do get do campo chave, nem com ENTER e nem com TAB.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

hwgui 2.17

Mensagem por alxsts »

Olá!
JoséQuintas escreveu:Que eu me lembre, colchetes são pra array ou string ou hash.
Não olhei o xhbdiff.txt pra ver que situação é essa diferente, se seria algo deste tipo.
alxsts escreveu:Opa... não tenho o xhbdiff.txt em mãos agora mas me lembrei que não são colchetes e sim <> (maior e menor).
Eu corrigi a informação imediatamente...
não leu?
xhb-diff.txt escreveu:### EXTENDED CODEBLOCKS ###
=================================
Both compilers support compile time extended codeblocks which allow
to use statements but with a little bit different syntax. Harbour uses
standard Clipper codeblock delimiters {}, f.e.:
? Eval( {| p1, p2, p3 |
? p1, p2, p3
return p1 + p2 + p3
}, 1, 2, 3 )
and xHarbour <>, f.e.:
? Eval( <| p1, p2, p3 |
? p1, p2, p3
return p1 + p2 + p3
>, 1, 2, 3 )

In Harbour extended codeblocks works like nested functions and supports
all function attributes, f.e. they can have own static variables or
other declarations which are local to extended codeblocks only and
do not effect upper function body.
In xHarbour the compiler was not fully updated for such functionality
and extended codeblocks were added to existing compiler structures what
causes that not all language constructs work in extended codeblocks
and creates a set of very serious compiler bugs, f.e., like in this code
with syntax errors but which is compiled by xHarbour without even single
warning giving unexpected results at runtime:
#ifndef __XHARBOUR__
#xtranslate \<|[<x,...>]| => {|<x>|
#xcommand > [<*x*>] => } <x>
#endif
proc main()
local cb, i
for i:=1 to 5
cb := <| p |
? p
exit
return p * 10
>
?? Eval( cb, i )
next
return
It's possible to create many other similar examples which are mostly
caused by missing in the compiler infrastructure for nested functions
support.
This can be fixed if someone invest some time to clean xHarbour compiler.
[]´s
Alexandre Santos (AlxSts)
ivanil
Usuário Nível 3
Usuário Nível 3
Mensagens: 166
Registrado em: 11 Set 2004 15:13
Localização: Florianópolis/SC

hwgui 2.17

Mensagem por ivanil »

O bloco extendido, acho que foi uma das maiores evoluções da linguagem;
Basicamente você cria uma função, recebe parâmetros e devolve valores naturalmente; na prática, podemos ter inúmeras funções muito específicas que pode ou não ficar ligados ao executável;
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

hwgui 2.17

Mensagem por JoséQuintas »

Já usei antes codeblock de várias linhas, mas na última vez que foi usar não consegui mais e desisti.
Algo do tipo:

Código: Selecionar todos

aCode := { ;
  | a, b |
LOCAL c := 10
RETURN a + b + c }

Assim funciona, mas isso é codeblock tradicional.

Código: Selecionar todos

PROCEDURE Main

   LOCAL aBlock

   SetMode(30,100)
   CLS
   aBlock := { | a, b, c | ;
      c := 10, ;
      a + b + 10 }

   ? Eval( aBlock, 1, 2 )
   Inkey(0)

   RETURN
pra quem não sabe e/ou não lembra, o codeblock pode ter várias expressões, o retorno será o último.

Código: Selecionar todos

   aBlock := { | a | a +=1, a += 1, a+= 1 }

   ? Eval( aBlock, 1 )
Isso também é aceito no VALID, na declaração INLINE de uma classe, etc.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

hwgui 2.17

Mensagem por Itamar M. Lins Jr. »

Olá!
Esse aqui até hoje eu estudo. Esse "return nil" dentro e tudo mais.

Código: Selecionar todos

LOCAL bCol1 := {|o,h,x1,y1,x2,y2,nc,nr|
      hwg_Fillrect( h, x1, y1, x2, y2, Iif( !Empty(o:brush), o:brush:handle, oBrw:handle ) )
      IF Eval( o:block )
         hwg_DrawTransparentBitmap( h, oBmpCheck:handle, x1+2, y1+2 )
      ENDIF
      RETURN Nil
   }
   LOCAL bEnter := {|o,nc|
      IF nc == 1
         (o:alias)->(rlock())
         (o:Alias)->(Eval( o:aColumns[nc]:block, !Eval( o:aColumns[nc]:block ) ))
         (o:alias)->(dbunlock())
         o:Refresh()
         RETURN .T.
      ENDIF
      RETURN .F.
   }
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

hwgui 2.17

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:Esse aqui até hoje eu estudo. Esse "return nil" dentro e tudo mais.
Então.... de forma simples, compare isto

Código: Selecionar todos

{|o,h,x1,y1,x2,y2,nc,nr|
	      hwg_Fillrect( h, x1, y1, x2, y2, Iif( !Empty(o:brush), o:brush:handle, oBrw:handle ) )
	      IF Eval( o:block )
	         hwg_DrawTransparentBitmap( h, oBmpCheck:handle, x1+2, y1+2 )
	      ENDIF
	      RETURN Nil
	   }
com isto:

Código: Selecionar todos

FUNCTION SemNome( o,h,x1,y1,x2,y2,nc,nr)
	      hwg_Fillrect( h, x1, y1, x2, y2, Iif( !Empty(o:brush), o:brush:handle, oBrw:handle ) )
	      IF Eval( o:block )
	         hwg_DrawTransparentBitmap( h, oBmpCheck:handle, x1+2, y1+2 )
	      ENDIF
	      RETURN Nil
Codeblock é uma função sem nome.
Esse fonte tem algum CH a mais?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

hwgui 2.17

Mensagem por JoséQuintas »

BINGO !

Código: Selecionar todos

   aBlock := { | a |
     a +=1
     a += 1
     a+= 1
     RETURN a
     }
O fechamento do codeblock precisa estar sozinho na linha de baixo.

Então....

Código: Selecionar todos

FUNCTION CalcImposto( nValor, nAliquota )

   LOCAL nImposto

   nImposto := nValor * nAliquota / 100

   RETURN nImposto
Em codeblock

Código: Selecionar todos

{ | nValor, nAliquota |

LOCAL nImposto

nImposto := nValor * nAliquota / 100

   RETURN nImposto
}
Pra executar a função:

Código: Selecionar todos

CalcImposto( 1000, 10 )
Pra executar o codeblock, depois de atribuir a uma variável:

Código: Selecionar todos

Eval( variavel, 1000, 10 )

Isso deixa tudo mais simples de entender.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

hwgui 2.17

Mensagem por JoséQuintas »

Então....
Eu já comentei várias vezes sobre esse tipo de coisa.
Às vezes só depende de encontrar alguma coisa já existente pra fazer comparação, pra entender o funcionamento da coisa nova.
Encontrou um "modelo" ideal de fazer comparação, tudo fica mais fácil.

Array comparar com lista
Hash comparar com array
Json os dois juntos

Se deixou de entender o antigo, não vai entender o novo.

Quem não entendeu FUNCTION, por incrível que pareça muitos ainda não entendem...
não vai entender codeblock.

E aquilo de -w3 -es2, e remodelar fontes, é algo como voltar ao começo, e reaprender tudo do jeito certo.
É justamente repassar o antigo, e craque no antigo fica craque no novo.

Vai encontrar muita function errada, que tá dependendo de coisa externa, quando não deveria.
E se não entende function, não vai entender codeblock.

NÃO é o caso do Itamar, se ele não entendeu, foi apenas porque não fez a comparação com uma function.

E eu não estava conseguindo fazer por conta da chave final, que deve ficar na linha de baixo.
O fonte que o Itamar mostrou resolveu a questão.
Apenas levei a chave pra linha de cima, e deu erro de compilação.

última linha, com a chave na mesma linha

Código: Selecionar todos

     RETURN Imposto }
Harbour 3.2.0dev (r2402101027)
Copyright (c) 1999-2021, https://harbour.github.io/

test.prg:18: error E0030 Syntax error "syntax error at '}'"

test.prg:18: warning W0007 Function '{||...}' does not end with RETURN statement
1 error
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

hwgui 2.17

Mensagem por JoséQuintas »

Assim também não aceita.
erro.png
Mas com ponto e vírgula sim, porque considera mesma linha.

Código: Selecionar todos

   aBlock := { ;
   | Valor, AliquotaIcms |
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

hwgui 2.17

Mensagem por deividdjs »

Ola amigo .. estou brincando com o HWGUI ... estou usando o Designer e ele compila normalmente ... quando eu coloco o codigo gerado por ele no meu sistema essa parte ele dá erro de sintax .. 'FROM RESOURCE TRANSPARENT;' quando eu comento compila .. alguem já teve esse problema ??

Código: Selecionar todos

	@ 6,4 OWNERBUTTON oOwnerbutton2  OF oPanel1 SIZE 52,40  ;
        TEXT 'Usuarios'  ;
        FONT HFont():Add( 'MS Sans Serif',0,-11,400,,,) ;
        COORDINATES 0, 22, 0, 0  ; //        FLAT;
        BITMAP 'C:\CONTROLE_\IMAGEM\smopen.bmp' ; //FROM RESOURCE TRANSPARENT  ;
        COORDINATES 0, 4, 0, 0  ;
        ON CLICK {|| ThisForm:CLOSE() } 
Abs!
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

hwgui 2.17

Mensagem por JoséQuintas »

Dá uma olhada no #define ou #translate se ajuda.
Não dá pra saber se está usando hwgui 2.17 mesmo ou outra, e pode ter diferença entre elas.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder