Ir para conteúdo
  • Cadastre-se

dev botao

Compatibilidade LAMW ACBR


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

Recommended Posts

Postado (editado)

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
  • Consultores
Postado

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 !!

  • Consultores
Postado
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 !!

Postado
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?

  • Fundadores
  • Solution
Postado

@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.

Postado
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
  • Fundadores
Postado
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.

×
×
  • 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.