Ir para conteúdo
  • Cadastre-se

Daniel Simoes

Fundadores
  • Total de ítens

    27.502
  • Registro em

  • Última visita

  • Days Won

    766

Tudo que Daniel Simoes postou

  1. Finalmente escrevi um tópico mais completo, sobre como configurar a compilação para FMX com outras plataformas
  2. Como alguns já devem saber, estamos fazendo um imenso trabalho nos fontes do ACBr, para compatibilizar o mesmo com os compiladores Delphi para Linux (POSIX), e Android (NEXTGEN). Essas plataformas, utilizam o Framework, FMX ou FireMonkey. Estou muito impressionado com a facilidade e capacidade do Delphi Rio, em gerar aplicações, Ricas, bonitas e rápidas, para Android... e creio que a FMX, será o futuro do Delphi. A compatibilização com esses novos compiladores, não foi algo trivial, pois infelizmente, eles introduziram grandes modificações na base do Object Pascal. Leia esse artigo, para saber mais sobre essas diferenças... Ok... legal... quero iniciar minhas aplicações em Android com o ACBr... o que devo fazer ? 1 - Informar que o seu projeto está usando FMX Para que o ACBr possa suportar compilação em VCL, FMX, LCL (Lazarus), Windows, Linux, Android... o código do ACBr, recebeu várias modificações com diretivas de compilação (IFDEFs) Para que essas diretivas sejam utilizadas, precisamos sinalizar para o ACBr, que o Projeto em questão, usa a FMX. Isso pode ser feito de duas maneiras: 1.1 - Inserindo uma Diretiva nas opções do Projeto (recomendado) Abra as opções do Projeto, Project -> Options (Shit-Ctrl-F11) Selecione: Building -> Delphi Compiler Em Target selecione All Configurations - All Plataforms Em Conditional Defines, escreva: FMX 1.2 - A segunda forma é modificar o ACBr.inc, ativando a diretiva FMX.. Porém use essa opção com cuidado, pois ela afetará todos os seus projetos, e você terá que comentar a linha novamente, quando for compilar um projeto VCL // Para usar FMX (Firemonkey) Windows / Delphi descomente essa linha {$DEFINE FMX} 2 - Informe o "Unit Scope Names" As novas versões do Delphi, usam notações com Pontos nas Units, como por exemplo: "System.SysUtils" ao invés de apenas "SysUtils". Para que o código fonte do ACBr, permaneça compatível com Delphi 7, não podemos modificar essa nomenclatura... Informar o Unit Scope Names, instruirá o compilador, a onde encontrar as Units com os novos nomes, mesmo usando a nomenclatura antiga... Vá em: Project -> Options -> Building -> Delphi Compiler (mesma tela do passo anterior) e informe os Unit Scopes necessários... exemplo: "System;Xml;Data;Datasnap;Web;Soap" 3 - Certifique-se que o Compilador conhece os Paths dos fontes Projeto ACBr Atualmente, o instalador do ACBr, adiciona automaticamente todos os diretórios dos Fontes do Projeto ACBr, em sua váriável Global, de LibPath dos Compiladores de Win32 e Win64... isso economiza um grande trabalho... Porém o instalador ainda não faz o mesmo, para os compiladores Linux e Android... então precisamos fazer isso manualmente... A maneira mais simples, é copiar os Paths do Compilador Win32 para o Android e Linux... Veja o passo a passo: 3.1 - Acesse: Tools -> Options -> Language -> Delphi -> Library Observe que a primeira Linha mostra o Library Path para Windos 32 bits... Marque toda a Linha e copie: 3.2 - Agora cole o conteúdo em um Editor (NotePad++), e modifique o texto isolando todos os diretórios do ACBr, Fortes Report, e outros que achar interessante... 3.3 - Mude a Plataforma selecionada, no combo box acima, para Android 32 3.4 - Vá ao final da Linha, e Cole o conteúdo, com os diretórios do ACBr (lembre-se de separar os diretórios com ; ) 3.5 - Repita o mesmo para Android 64 e Linux 64 4 - Solicite as permissões que o seu projeto precisará no Android A tela abaixo, é do Demo do ACBrMail para Android, que já disponível no SVN em: "\ACBr\Exemplos\ACBrTCP\ACBrMail\Android" Observe que marcamos a opção para ter acesso a internet, pois isso é necessário nessa aplicação De acordo com as novas políticas de segurança do Android, também será necessário, requisitar essas permissões em tempo de execução... Você pode ver como isso é feito, nos fontes do Demo do ACBrMail. Use a força, leia os fontes, e procure pelo método: function TACBrMailTestForm.PedirPermissoes: Boolean; 5 - Modifique o Deployment, para inserir as bibliotecas necessárias Vá em: Project -> Deployment, e adicione as Bibliotecas do OpenSSL, e substitua as Imagens que achar necessário Veja por exemplo, a tela do Deployment do Demo do ACBrMail Nota sobre as dependências externas do ACBr: OpenSSL e LibXML2 Após algum esforço, conseguimos compilar as bibliotecas do OpenSSL e a LibXML2, para Android em 32 e 64 Bits... e o binário delas já se encontram no SVN, na pasta: \ACBr\DLLs\Android\ Use as versões dinâmicas das bibliotecas, ou seja, os arquivos com extensão .SO Para 32 Bits use a biblioteca com prefixo "ARM" Para 64 Bits use e "AARCH64" Configure o "Remote Path", para ".\assets\internal\", pois é nesse local, que os fontes do ACBr, tentará encontrar as bibliotecas IMPORTANTE: Os arquivos da pasta remota: .\assets\internal\ poderão ser acessados de dentro da aplicação com: TPath.GetDocumentsPath (que na será traduzido para "$(ApplicationPath)\file") Porém, quem faz a copia dos arquivos da pasta de $(APK)\assets\internal\, para a pasta $(ApplicationPath)\file é a Unit System.StartUpCopy, que por padrão, é adicionada no inicio de Todo novo projeto FMX. Exemplo: program Project1; uses System.StartUpCopy, // <-- Olha ela aqui FMX.Forms, Se essa Unit não for adicionada, os arquivos que estão na pasta "assets\internal" do APK, não serão copiados para a pasta "files" de sua aplicação, após a mesma ser iniciada... e como consequencia, você não consegirá acessá-los.. A correção é bem simples.. basta adicionar a System.StartUpCopy, conforme demonstrado acima... Leia também:
  3. Verifique em: Package -> Package Links, se você tem pacotes duplicados Verifique ainda se no seu projeto, você adicionou dependência dessa Unit
  4. Creio que seja melhor, primeiro verifique se há alguma configuração na balança, para que ela forneça a resposta compatível com formato do protocolo que já está em uso, por essa classe
  5. Sim... está
  6. Qual é exatamente o passo a passo, para reproduzir o problema, usando o Demo do ACBr ?
  7. Minha suspeita é algum Update no Window... Você reparou se houve algum Update antes ou depois do problema?
  8. Observe que existe o modelo "balToledo9091_8530_8540"... O Log que você exibiu, tem a resposta da Balança.... Agora resta apenas saber, qual classe faz o "parser" dessas informações, de forma mais apropriada...
  9. Qual é exatamente a Marca e Modelo da balança ?
  10. Por favor seja mais objetivo... Qual é a configuração necessária, e passo a passo, para reproduzir o problema nos Demos do ACBr, ou no ACBrMonitor?
  11. Veja os fontes do Emulador de Balanças ...ele não suporta vários protocolos
  12. Verifique se o seu canal de par de portas Seriais, está realmente funcionando...
  13. No Demo você configurou com 2400bps
  14. Verifique se as configurações da Serial estão corretas.. ex: 9600,8,N,1
  15. Como está a tela do Emulador de Balanças ? Você precisa marcar o CheckBox: "Monitorar porta..."
  16. Não compreendi... você arredondou com 4 casas , e os valores no XML, tem 4 casas...
  17. Não compreendi muito bem a pergunta... Você pode configurar onde o Componente irá gravar os XMLs
  18. Não é a Lib que gera um Exception, ela apebas retorna um valor negativo... Quem gera o Exception é a Classe de Alto Nível em xHarbour, e a qual você tem os fontes... ou seja, você pode modificar o método "CheckResult" para não levantar um Exception... Um T.F.A.
  19. Daniel Simoes

    Demo C# BAL

    Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.
  20. Daniel Simoes

    Demo C# BAL

    O vídeo abaixo, fala de outro produto, da ACBrLib... mas talvez possa dar alguma dica...
  21. Como você conseguiu transmitir em HTTPS usando esse certificado, isso significa que ele está funcionando corretamente com o ACBr
  22. é uma técnica comum de programação, disparar Exceptions, para a rotina que invoca, possa capturar... Qual é a sua sugestão, para a mudança na Classe de Alto nível, em xHarbour ?
  23. No Brasil, todos equipamentos e documentos fiscais, usam a norma da ABNT O ECF pode ser programado para Truncar ou Arredondar... Veja como está no Demo ECFTeste procedure TForm1.Arredonda1Click(Sender: TObject); begin mResp.Lines.Add( 'Arredondamento: '+ IfThen( ACBrECF1.Arredonda , 'SIM', 'NAO') ); AtualizaMemos ; end;
  24. Pense um pouco... se fosse realmente um erro nos fontes do SVN do ACBr... Será que todos os usuários que baixam o ACBr, não teriam caído nesse mesmo problema ?
×
×
  • 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.