Harbour for Android

Responder
Eric.Developer
Mensagens: 66
Registrado em: 06 Dez 2016, 11:22

Harbour for Android

Mensagem por Eric.Developer » 28 Jan 2018, 11:04

Seguindo parte do tutorial (elektrosoft), baixei os fontes do Harbour (2014), Android NDK (r19), compilei o Harbour para Android. Construi 3 exemplos (hello, abrw, aget), compilei e testei no dispositivo Android com sucesso.
Fiz os procedimentos apenas por curiosidade, após responder a uma questão no grupo.
  • DOWNLOAD THE EXAMPLES (EXECUTABLES)
    para você executar no Android e ir direto na parte "divertida" :lol: .
    harbour_android_tests.zip
    (1.55 MiB) Baixado 2 vezes
    Veja o item do tutorial: 6 - Copy and Execute the application on Android
Tip: I installed everything in C:\DESENV, avoid mess. :lol:

Example abrw:
abrw.png
dbedit / dbf
abrw.png (164.99 KiB) Exibido 38 vezes

Código: Selecionar todos

// abrw.prg - www.idlagam.com - example - Harbour for android
function main( cFileName )
   scroll()
   cFileName:=IF( cFileName = NIL, 'DADOS.DBF', cFileName )
   @00, 00 SAY PADC( ' - HARBOUR FOR ANDROID - ', MAXCOL()+1, '*' ) COLOR 'W+/R'
   @01, 00 SAY PADC( ' - www.idlagam.com - ', MAXCOL()+1 ) COLOR 'W+/B'
   if EMPTY(cFileName)
      ? 'enter the dbf file name. Ex:'
      ? 'abrw client.dbf'
   elseif ! FILE(cFileName)
      ? 'File not found.'
      ? cFileName
   else
      aBrw(cFileName)
   endif   
   return nil

function aBrw(cFileName) // --> NIL
   local nMaxRow
   
   nMaxRow:=MAXROW()+1
   @nMaxRow, 0 SAY 'opening ' + cFileName + ' ...'
   USE (cFileName) NEW
   DBEDIT(2)
   RETURN NIL
Example aget:
aget.png
@ say /get
aget.png (105.88 KiB) Exibido 38 vezes

Código: Selecionar todos

// aget.prg - www.idlagam.com - example - Harbour for android
function main()
   environment()
   scroll()
   
   @00, 00 SAY PADC( ' - HARBOUR FOR ANDROID - ', MAXCOL(), '*' ) COLOR 'W+/R'
   @01, 00 SAY PADC( ' - www.idlagam.com - ', MAXCOL() ) COLOR 'W+/B'
   
   aget()
   return nil

function aget()
   local getlist[0]   
   local cNome, cEnde, dData, nNumero
   
   cNome:=SPACE(30)
   cEnde:=SPACE(30)
   dData:=CTOD('')
   nNumero:=0
   
   @5, 02 say '    Nome' GET cNome   VALID FillGet()
   @6, 02 say 'Endereco' GET cEnde   VALID FillGet() 
   @7, 02 say '    Data' GET dData   VALID FillGet()
   @8, 02 say '  Numero' GET nNumero VALID FillGet()
   read
   
   ALERT('DONE')
   
   return nil
   
function FillGet() // --> lFill
   LOCAL lFill
   
   lFill:=.T.
   if EMPTY(getActive():varget())   
      lFill:=.F.
      ALERT( 'Required.' )
   endif
   return lFill
   
function environment()
   SET CENTURY ON
   SET SCOREBOARD OFF
   SET EPOCH TO 1999
   //SET DATE BRITISH
   RETURN NIL
   

Responder