Usar Harbour 3.4 + Mingw 5.1 Top com 3 passos!

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

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

Usar Harbour 3.4 + Mingw 5.1 Top com 3 passos!

Mensagem por JoséQuintas »

Ele foi alterado.

Dica:

O endereço do Harbour 3.4 no github é este:

https://github.com/vszakats/harbour-core

descendo a página inicial, vai chegar neste trecho:
Harbour unstable binaries (updated after each commit)

Windows (mingw, 32-bit, 7-zip archive and installer combined)
https://github.com/vszakats/harbour-cor ... win.7z.exe
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
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Usar Harbour 3.4 + Mingw 5.1 Top com 3 passos!

Mensagem por janio »

Ha algum link para baixar o HARBOUR 3.4 ja COMPILADO?

O informado no inicio deste topico nao esta funcionando!

Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Usar Harbour 3.4 + Mingw 5.1 Top com 3 passos!

Mensagem por JoséQuintas »

E esse do meu post que acabou de responder?
É exatamente o endereço dele no github.
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
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Usar Harbour 3.4 + Mingw 5.1 Top com 3 passos!

Mensagem por janio »

O do seu link não é a versão JÁ COMPILADA! Eh?

Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Usar Harbour 3.4 + Mingw 5.1 Top com 3 passos!

Mensagem por JoséQuintas »

BINARIES significa o Harbour pronto para uso.

Mostrei como se chega nesse link, através da página de fontes.
Assim não importa se for alterado, lá vai estar sempre o link atualizado.
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
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Usar Harbour 3.4 + Mingw 5.1 Top com 3 passos!

Mensagem por asimoes »

Baixando o harbour compilado pelo harbour

Código: Selecionar todos

#include "hbthread.ch" 
#include "inkey.ch" 

FUNCTION MAIN
LOCAL cFileAttr, nFileSize, dCreateDate, nCreateTime, dChangeDate, nChangeTime 
   SetCursor(0)
   nSeconds :=Seconds()
   cUrl     :="https://github.com/vszakats/harbour-core/releases/download/v3.4.0dev/harbour-daily-win.7z.exe"
   cFile    :="harbour-daily-win.7z.exe"
   ferase(cFile)
   
   hb_ThreadStart( HB_BITOR( HB_THREAD_INHERIT_PUBLIC, HB_THREAD_INHERIT_PRIVATE, HB_THREAD_INHERIT_MEMVARS ), @Download(), cUrl, cFile)
   
   nFileSize:=0
   Do While nFileSize = 0
      @ 10,00 SAY "Baixando (&cFile.)"
      @ 11,00 SAY "Aguarde "+SecToTime(Seconds()-nSeconds)
      FileStats( cFile,  @cFileAttr  , @nFileSize  , ;
                         @dCreateDate, @nCreateTime, ;
                         @dChangeDate, @nChangeTime  )
   
   Enddo
   @ 12,00 SAY AllTrim(StrTran(Transform(nFileSize, "@ 999,999,999,999"), ",", "."))+" bytes"
   Inkey(0)

RETURN Nil

FUNCTION DOWNLOAD(cUrl, cFile)

   oOle := Win_OleCreateObject( "WinHttp.WinHttpRequest.5.1" )
   oOle:Open( 'GET', cUrl, .F. )
   oOle:Send()
   hb_MemoWrit(cFile, oOle:ResponseBody)
RETURN Nil

INIT FUNCTION AppSetup()
  
  ANNOUNCE hwg_ErrSys
  
  REQUEST HB_LANG_PT
  REQUEST HB_CODEPAGE_PT850
  REQUEST HB_CODEPAGE_PTISO
  HB_LANGSELECT("PT")
  HB_CDPSELECT( "PT850" ) 

  REQUEST DBFNTX
  
  REQUEST DBFCDX
  
  RddSetDefault("DBFCDX")
  
  SET TYPEAHEAD TO 0
  SET INTENSITY ON
  SET SCOREBOARD OFF
  SET DELETED ON
  SET SAFETY OFF
  SET DATE ANSI
  SET ESCAPE ON
  SET DATE FORMAT "DD/MM/YY"
  SET DELIMITERS TO
  SET EXCLUSIVE OFF
  SET WRAP ON
  SET EPOCH TO 1920
  SET OPTIMIZE ON
  SET AUTOPEN ON //OFF
  SET MESSAGE TO 24 CENTER
  
  Set( _SET_EVENTMASK, INKEY_ALL - INKEY_MOVE )
  
  hb_gtReload( "WVT" )
  
  SetMode(26, 80)

  SetColor("W+/B")
  
  CLS
 
  IniciaJanela()
 

RETURN Nil    

FUNCTION IniciaJanela()
 
   cTituloJanela:="Baixar Harbour"
   
   HB_gtInfo(HB_GTI_FONTNAME, "Lucida Console")
   HB_gtInfo(HB_GTI_WINTITLE, cTituloJanela)
   HB_gtInfo(HB_GTI_ICONFILE, "P:\GERAL\HARBOUR\HARB_WIN.ICO" )
   HB_gtInfo(HB_GTI_CLOSABLE, .F. )
   HB_gtInfo(HB_GTI_ISGRAPHIC, .T. )
   HB_gtInfo(HB_GTI_STDERRCON, .T. )
   HB_gtInfo(HB_GTI_COMPATBUFFER, .T. ) 
   HB_gtInfo(HB_GTI_SPEC, HB_GTS_WNDSTATE, HB_GTS_WS_MAXIMIZED )
   HB_gtInfo(HB_GTI_SPEC, HB_GTS_SHOWWINDOW, SW_NORMAL )
   HB_GtInfo( HB_GTI_MAXIMIZED, .T. )
    
RETURN Nil
 
FUNCTION HB_GTSYS()
   REQUEST HB_GT_WVT_DEFAULT
   REQUEST HB_GT_WVG
   REQUEST HB_GT_WGU
   REQUEST HB_GT_WVT
RETURN Nil  

Anexos
h-BaixarHarbour.zip
Baixar Harbour Compilado
exemplo compilado com fonte
(582.46 KiB) Baixado 210 vezes
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Usar Harbour 3.4 + Mingw 5.1 Top com 3 passos!

Mensagem por janio »

Valeu aSimoes,

Era exatamente o que eu estava precisando!
:{

Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Usar Harbour 3.4 + Mingw 5.1 Top com 3 passos!

Mensagem por asimoes »

Uma atualização da função download

Código: Selecionar todos

FUNCTION DOWNLOAD(cUrl, cFile)
LOCAL oOle
   oOle := Win_OleCreateObject( "WinHttp.WinHttpRequest.5.1" )
   oOle:SetTimeouts(0, 60000, 30000, 120000)
   oOle:Open( 'GET', cUrl, .F. )
   oOle:Send()
   oOle:WaitForResponse(500)
   hb_MemoWrit(cFile, oOle:ResponseBody)
RETURN Nil
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Usar Harbour 3.4 + Mingw 5.1 Top com 3 passos!

Mensagem por asimoes »

Se houver problema para baixar em uma rede corporativa, que é o meu caso, uso o setproxy

Código: Selecionar todos


hb_ThreadStart( HB_BITOR( HB_THREAD_INHERIT_PUBLIC, HB_THREAD_INHERIT_PRIVATE, HB_THREAD_INHERIT_MEMVARS ), @Download(), cUrl, cFile, "proxy:8080")
FUNCTION DOWNLOAD(cUrl, cFile, cProxy)
LOCAL oOle
   hb_Default(@cProxy, "")
   oOle := Win_OleCreateObject( "WinHttp.WinHttpRequest.5.1" )
   oOle:SetTimeouts(0, 60000, 30000, 120000)
   If !Empty(cProxy)
      oOle:SetProxy(2, cProxy) 
   Endif
   oOle:Open( 'GET', cUrl, .F. )
   oOle:Send()
   oOle:WaitForResponse(-1)
   hb_MemoWrit(cFile, oOle:ResponseBody)
RETURN Nil
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Usar Harbour 3.4 + Mingw 5.1 Top com 3 passos!

Mensagem por asimoes »

Uma nova versão com controle do término com hb_ThreadWait

Código: Selecionar todos

FUNCTION MAIN
LOCAL cFileAttr, nFileSize, dCreateDate, nCreateTime, dChangeDate, nChangeTime, lExit, nSeconds
   SetCursor(0)
   lExit    :=.F.
   cUrl     :="https://github.com/vszakats/harbour-core/releases/download/v3.4.0dev/harbour-daily-win.7z.exe"
   cFile    :="harbour-daily-win.7z.exe"
   nSeconds :=Seconds()
   ferase(cFile)
   nThreadId:=hb_ThreadStart( HB_BITOR( HB_THREAD_INHERIT_PUBLIC, HB_THREAD_INHERIT_PRIVATE, HB_THREAD_INHERIT_MEMVARS ), @Download(), cUrl, cFile)
   Do While !lExit
      if hb_ThreadWait( nThreadId, 0.1, .T. ) == 1 
         lExit:=.T.
      Endif
      @ 10,00 say SecToTime(Seconds()-nSeconds)  
      SysWait(1)
   Enddo   
   FileStats( cFile,     @cFileAttr  , @nFileSize  , ;
                         @dCreateDate, @nCreateTime, ;
                         @dChangeDate, @nChangeTime  )   
   @ 12,00 SAY AllTrim(StrTran(Transform(nFileSize, "@ 999,999,999,999"), ",", "."))+" bytes"
   Inkey(0)                         
RETURN Nil

FUNCTION SysWait(nWait)
LOCAL iTime:=Seconds()
   hb_Default(@nWait, 1)
   DO WHILE Seconds() - iTime < nWait
      hwg_DoEvents()
   ENDDO
RETURN Nil         
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Usar Harbour 3.4 + Mingw 5.1 Top com 3 passos!

Mensagem por JoséQuintas »

ASimões, essa rotina funciona no Harbour 3.2, ou a pessoa vai ter que baixar o 3.4 primeiro pra poder compilar e obter o 3.4? ... rs

Talvez seja melhor detalhar:

Abrir o link do Harbour 3.4

https://github.com/vszakats/harbour-core
harbour1.png
Desça um pouco a página até o índice, vai encontrar "HOW TO GET", que signfica "como obter:
harbour2.png
Clique nesse "how to get"
harbour3.png
Bom, não é o Harbour 3.0, então descer um pouquinho.
harbour4.png
Pronto, o link vai estar sempre aí.

Nota: preciso descobrir como se faz isso, de colocar o EXE no próprio GIT, sem controle de versão do EXE.
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
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Usar Harbour 3.4 + Mingw 5.1 Top com 3 passos!

Mensagem por asimoes »

Quintas,

Todos os exemplos que eu tenho postado aqui estou usando o harbour 3.4, porque tudo que acontece na 3.2 o Viktor incorpora na 3.4 ao contrário acredito que não, acho que com raríssimas ocasiões.

Este é um exemplo que pode ser usado para baixar qualquer arquivo, o ideal é o endereço seja estático.

Já testei com http://hmgextended.com/files/CONTRIB/hmg1605-mingw.exe para baixar a minigui extended, mas como eu disse é uma função de download em tese serve para baixar qualquer arquivo de um endereço válido.

Até um arquivo da página do PC-TOLEDO

cUrl :='https://pctoledo.org/forum/fileba ... d=0&page=1'
cFile:='xDevStudio-0.70.exe'

Quintas,

Pré-requisito é ter o habour instalado.

O usuário do harbour pode até em um primeiro momento baixar a versão compilada do guit e depois usar este exemplo para uso genérico
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Usar Harbour 3.4 + Mingw 5.1 Top com 3 passos!

Mensagem por asimoes »

Que mancada, faltou a função Download.

Código: Selecionar todos

#include "hbthread.ch" 
#include "inkey.ch" 

FUNCTION MAIN
MEMVAR cArq
LOCAL cFileAttr, nFileSize, dCreateDate, nCreateTime, dChangeDate, nChangeTime, lExit, nSeconds
PUBLIC cArq:=""
   SetCursor(0)
   lExit    :=.F.
   cUrl     :="https://github.com/vszakats/harbour-core/releases/download/v3.4.0dev/harbour-daily-win.7z.exe"
   cFile    :="harbour-daily-win.7z.exe"
   nSeconds :=Seconds()
   ferase(cFile)
   nThreadId:=hb_ThreadStart( HB_BITOR( HB_THREAD_INHERIT_PUBLIC, HB_THREAD_INHERIT_PRIVATE, HB_THREAD_INHERIT_MEMVARS ), @Download(), cUrl, cFile)
   Do While !lExit
      if hb_ThreadWait( nThreadId, 0.1, .T. ) == 1 
         lExit:=.T.
      Endif
      @ 10,00 say SecToTime(Seconds()-nSeconds)  
      @ 11,00 say cArq
      SysWait(1)
   Enddo   
   FileStats( cFile,     @cFileAttr  , @nFileSize  , ;
                         @dCreateDate, @nCreateTime, ;
                         @dChangeDate, @nChangeTime  )   
   @ 12,00 SAY AllTrim(StrTran(Transform(nFileSize, "@ 999,999,999,999"), ",", "."))+" bytes"
   Inkey(0)                         
RETURN Nil

FUNCTION SysWait(nWait)
LOCAL iTime:=Seconds()
   hb_Default(@nWait, 1)
   DO WHILE Seconds() - iTime < nWait
      hwg_DoEvents()
   ENDDO
RETURN Nil           

FUNCTION DOWNLOAD(cUrl, cFile, cProxy)
LOCAL oOle
#define HTTPREQUEST_PROXYSETTING_DEFAULT    0
#define HTTPREQUEST_PROXYSETTING_PRECONFIG  0
#define HTTPREQUEST_PROXYSETTING_DIRECT     1
#define HTTPREQUEST_PROXYSETTING_PROXY      2

   hb_Default(@cProxy, "")
   oOle := Win_OleCreateObject( "WinHttp.WinHttpRequest.5.1" )
   oOle:SetTimeouts(0, 60000, 30000, 120000)
   If !Empty(cProxy)
      oOle:SetProxy(HTTPREQUEST_PROXYSETTING_PROXY, cProxy) 
   Endif
   oOle:Open( 'GET', cUrl, .F. )
   oOle:Send()
   oOle:WaitForResponse(-1)
   cArq:="Baixado"
   hb_MemoWrit(cFile, oOle:ResponseBody)
RETURN Nil              
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Usar Harbour 3.4 + Mingw 5.1 Top com 3 passos!

Mensagem por JoséQuintas »

Só comentário:
Não vai atualizar o tempo na tela, mas:

Código: Selecionar todos

 Do While !lExit 
       if hb_ThreadWait( nThreadId, 0.1, .T. ) == 1 
          lExit:=.T. 
       Endif 
       @ 10,00 say SecToTime(Seconds()-nSeconds)  
       @ 11,00 say cArq 
       SysWait(1) 
    Enddo    
se for programa único, pode ser substituído por:

Código: Selecionar todos

hb_ThreadWaitForAll()
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
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Usar Harbour 3.4 + Mingw 5.1 Top com 3 passos!

Mensagem por asimoes »

Quintas,

Na verdade aquele loop é pro usuário saber que tá acontecendo alguma coisa, claro que pode usar hb_ThreadWaitForAll()

Com hb_ThreadWaitForAll() a janela fica assim:
Screen Shot 06-08-16 at 12.19 PM.PNG
Screen Shot 06-08-16 at 12.19 PM.PNG (4.33 KiB) Exibido 3898 vezes
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Responder