Ir para conteúdo
  • Cadastre-se

dev botao

Compatibilidade LAMW ACBR


Ver Solução Respondido por Daniel Simoes,
  • Este tópico foi criado há 460 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

ACBrUtil.Math.pasEstou crinado este tópico para compartilhar as alterações necessário no ACBr para compatibilidade com LAMW(Desenvolvimento Android com Lazarus).


Instalação LAMW.
O LAMW pode ser obtido diretamente no github pelo seguinte link: :https://github.com/jmpessoa/lazandroidmodulewizard

Para iniciantes pode ser usado LAMW Manager para instalar o ambiente completo de desenovolvimento.
Para que deseja usar a versão 2.2.4 do Lazarus recomento instalar via FPDeluxe.
Obs: O ideal é usar a versão mais recente do LAMW pois já exise ajustes oriundos da compatibilização. 


Alterações realizadas:

1 - Foi criado uma diretiva chama LAMW para diferenciar códigos LAMW com FMX ou VCL. 

2 - Syanpse:
2.1 - synaser.pas: Este arquivo  foi feito um ajuste no método procedure TBlockSerial.Flush; pois o código implementado usava um método que não existe no FPC.
O código modificado foi enviado ao Synapse(https://sourceforge.net/p/synalist/feature-requests/28/)

procedure TBlockSerial.Flush;
begin
{$IFNDEF MSWINDOWS}
  {$IFDEF ANDROID}
    ioctl(FHandle, TCSBRK, 1);
  {$ELSE}
    SerialCheck(tcdrain(FHandle));
  {$ENDIF}
{$ELSE}
  SetSynaError(sOK);
  if not Flushfilebuffers(FHandle) then
    SerialCheck(sErr);
{$ENDIF}
  ExceptCheck;
end;

synaser.pas
-------

2.2 - No arquivo ssl_openssl_lib existe uma chamada para System.IOUtils que OS é Android. Fiz um tratamento iguinorar quando for FPC.
      Também foi modificado o InitSSLInterface, este ainda precisa de mais testes.

ssl_openssl_lib.pas

3 - ACBrComum:

3.1 - O arquivos(ACBrUtil, ACBrUtil.XMLHTML.pas, ACBrUtil.Math.pas, ACBrUtil.Compatibilidade.pas, ACBrUtil.DateTime.pas,
        ACBrUtil.Strings.pas, ACBrUtil.Base.pas) com um chamada para a unit forms e isso impede a execução do projeto no Android. 
        Isso ocorre pq o LCL é imbutido pelo compiado a aplicação na abre no android.

        Para resolver o problema foi feito o tratamento com IFNDEF LAMW nos pontos onde é feita a chama.

        Obs: A unit forms não é usada e poderia ser remvida destas units.

ACBrUtil.DateTime.pasACBrUtil.Compatibilidade.pasACBrUtil.XMLHTML.pasACBrBase.pas

3.2 - A unit ACBrBase.pas contém uma chama para a unit Dialogs e também usa o método MessageDlg no código.
        Foi feito o tratamento com IFNDEF LAMW e este bloco não vai gerar problemas pois é usado apenas em tempo de desenvolvimento.

ACBrReg.pas

3.3 - Na unit ACBrUtil.FilesIO.pas foi feito um tratamento para a unit forms, modificado o ApplicationPath que quando for LAMW usara o params(0).


4 - ACBrDiversos: O unico componente que apresentou problema foi ACBrCalculadora isso porque ele criar um usa TForm.
     Obs: Precisa de teste individual por componente.

 

5 - ACBrTCP: Os unicos componentes que apresentão problemas são ACBrTCPServer eACBrDownload. 
     Obs: Precisa de teste individual por componente.

6 - ACBrPIX: Não apresentou problema com o projeto e precisa de testes.
      Obs: Precisa de teste individual por componente.

Editado por Ismael Faustino
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Consultores

Obrigado pela contribuição, em breve será validada para possível inclusão ao svn #TK-3590

  • Curtir 1
Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Consultores
3 minutos atrás, Ismael Faustino disse:

Estou tentando subir alguns arquivos mas sempre me exibe a seguine mensagem.

image.png.fa8ff8c20db5062e76179f882c941d28.png

Verifique se seu limite de anexos não foi atingido.
Tente também limpar o cache do navegador. 

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Fundadores

@Ismael Faustino, muito obrigado pela contribuição...

Eu mesmo pretendo analisar e fazer o Merge...

Talvez seja necessário, compactar todos arquivos em um único Zip

  • Curtir 2
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

44 minutos atrás, Diego Foliene disse:

Verifique se seu limite de anexos não foi atingido.
Tente também limpar o cache do navegador. 

O arquivos são ACBrUtil, ACBrUtil.Math.pas,  ACBrUtil.Strings.pas, ACBrUtil.Base.pas, já tentei pelo Safira no MacOS e no FireFox no Windows. 

Será que pode ser alguma tag no arquivos?

Link para o comentário
Compartilhar em outros sites

  • Fundadores
  • Solution

@Ismael Faustino, enviei ao SVN.. modificações, baseado nas suas sugestões...

Boa parte das mudanças na ACBrComum, não foram necessárias, após incluir uma mudança na ACBr.inc

//  lazrus Android com LAMW, não suporta Dialogs, Forms,
{$IFDEF LAMW}
  {$DEFINE NOGUI}
{$ENDIF}     

Também preferi mudar os IFDEFs para "FPC", do que "LAMW"... pois assim fica mais dependente do compilador, do que do Framework...

Em synaser.pas, apliquei alguns ajustes, que já havíamos detectado aqui... para rodar em Android...

Se possível, por favor atualize os fontes, com essas modificações, e reporte o resultado

 

  • Curtir 4
  • Obrigado 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

22 horas atrás, Daniel Simoes disse:

@Ismael Faustino, enviei ao SVN.. modificações, baseado nas suas sugestões...

Boa parte das mudanças na ACBrComum, não foram necessárias, após incluir uma mudança na ACBr.inc

//  lazrus Android com LAMW, não suporta Dialogs, Forms,
{$IFDEF LAMW}
  {$DEFINE NOGUI}
{$ENDIF}     

Também preferi mudar os IFDEFs para "FPC", do que "LAMW"... pois assim fica mais dependente do compilador, do que do Framework...

Em synaser.pas, apliquei alguns ajustes, que já havíamos detectado aqui... para rodar em Android...

Se possível, por favor atualize os fontes, com essas modificações, e reporte o resultado

 

Em meus testes deu tudo certo.

Também identifiquei o problema com do SocketServer e Download, eles usam TThread e para funcionar no Android tem que definir UseCThreads no projeto.

Nos próximo dias vou avançar nos teste com TEF e PIX pois recebi um K2Mini para homologar.

Assim que tiver novidades envio aqui.

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Fundadores
18 horas atrás, Ismael Faustino disse:

Nos próximo dias vou avançar nos teste com TEF e PIX pois recebi um K2Mini para homologar.

Que legal... é um ótimo equipamento...

Obrigado pela sua contribuição...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.