Pesquisar na Comunidade
Showing results for tags 'FMX'.
Encontrado 13 registros
-
Pessoal, eu tenho um PDV Android que até então funciona muito bem. Eu já tenho ele homologado no Gertec GPOS700 e agora preciso também homologar no GPOS720, mas quando eu adiciono a lib (Em anexo) do 720 ele para de compilar acusando o erro abaixo: [Exec Error] EXEC(1): com.android.dx.cf.code.SimException: ERROR in gedi.t1.b:(Ljava/lang/String;)I: invalid opcode ba - invokedynamic requires --min-sdk-version >= 26 (currently 13) Peguei um exemplo em Delphi com a Gertec, e acontece a mesma coisa. Nem eles conseguiram me ajudar, fizemos uma call para verificar a configurações do ambiente de desenvolvimento, e aparentemente está igual. Mas lá compila . Delphi 10.4 libgedi-0.16.17-beta.0-gpos720-payment-release.jar
-
Ajuda com componente ETQ. Erro "Porta não definida ou Porta não encontrada" no FMX.
um tópico no fórum postou Jonas Gonçalves ACBrSerial
Primeiramente, espero que todos estejam bem e já agradeço a ajuda reportada! Estou criando um app simples, que terá como uma funcionalidade principal a leitura do código de barras de um produto e em sequencia, a impressão da etiqueta do mesmo. Para a impressão da etiqueta, utilizamos a impressora Zebra ZT230, que está compartilhada em rede '\\IPCOMPUTADOR\ZebraFilial'. Em testes realizados compilando direto no windows, consigo realizar o envio e impressão da etiqueta na impressora. Quando faço a compilação utilizando o android, abro o app e tendo fazer o envio para impressora, recebo o seguinte erro: 'PORTA NÃO DEFINIDA'. Pesquisando aqui no fórum, encontrei alguns tópicos com algumas dicas e tentei implementar, mas ainda assim o problema persiste. Tentativas de definição da propriedade PORTA do componente ETQ: 1ª: \\IPCOMPUTADOR\ZebraFilial -> Erro: 'PORTA NÃO DEFINIDA' 2ª: RAW:\\IPCOMPUTADOR\ZebraFilial -> Erro: 'PORTA NÃO ENCONTRADA' 3ª: RAW:ZebraFilial -> Erro: 'PORTA NÃO ENCONTRADA' 4ª: USB:Zebra, ZT230 -> Erro: 'NÃO IMPRIME A ETIQUETA' apesar de ativar a impressora, passar todos os parametros e finalizar a impressão. 5ª UBS:\\IPCOMPUTADOR\ZebraFilial -> Erro: 'NÃO IMPRIME A ETIQUETA' apesar de ativar a impressora, passar todos os parametros e finalizar a impressão. Alguém poderia me ajudar nessa questão? Desde já serei muito grato pelo ajuda e tempo solicito. -
Não sei se fiz algo errado mas o ACBrBoleto é só para VCL correto ? Alguém já tentou portar pra usar em projetos FMX ? Se sim teve dificuldades ? Por hora percebi que TObjectList e TPicture precisam ser substituídos, isso apenas para compilar usando o componente no projeto, nem to falando as funcionalidades.
-
Como usar o ACBr em Projetos Android FMX
um tópico no fórum postou Daniel Simoes Base de Conhecimento
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: -
service Problema ao utilizar ACBr como Service Android via Delphi
um tópico no fórum postou moriggi ACBrDiversos
Boa tarde, estou com um problema usando o ACBr para android, estou criando um serviço remoto pelo delphi ACBr, sem o ACBrBase no projeto o service funciona, porém ao adicionar o ACBrBase ele não funciona ele da um erro de null pointer ao rodar o ACBr sem utilizar o service ele funciona normalmente pelo Firemonkey, porém gostaria apenas de um service ACBr em delphi e não uma aplicação inteira, alguem já passou por isso e sabe como usar o ACBr junto com services?? para utilizar o service estamos usando os arquivos (.so) gerados pelo delphi como bibliotecas nativas do android segui este tuto, porém foi possível solucionar o problema -
Emissão NFC-e Mobile - Offline
um tópico no fórum postou Luis Ricardo NFe/NFCe - Nota Fiscal Eletrônica
Boa tarde! Seguinte, estou desenvolvendo um sistema mobile para a emissão de NFC-e. O cenário é o seguinte, o meu cliente precisa da aplicação para realizar vendas fora da empresa, ou seja, ele carrega o caminhão e sai realizando vendas de porta em porta. É necessário que a emissão do NFC-e aconteça, porque é no estado do RN, mas dependendo do local onde ele estiver, não haverá conexão alguma com a internet, talvez uma conexão de 3g, mas nem é bom contar com isso. Até então, consegui resolver tudo pelo tablet, geração, emissão do cupom, tudo de forma offline. Entretanto, agora chegou a hora de colocar o certificado digital no qrcode. A pergunta, eu consigo realmente realizar a emissão de forma offline, ou é necessário de fato estar pareado com um computador? Pergunto porque existem certificados mobile, mas não sei exatamente como funciona. Obrigado. -
Boa tarde, Ofereço-me para desenvolvimento de aplicativos moveis em Delphi (firemonkey) . Integrações de aplicativos ao seu ERP. Apps como Força de Vendas, Comanda Eletrônica , Representantes Comerciais , App Gerencial , Prospecção de Clientes e muitos outros. Comunicação via servidor Datasnap ou HttpServer (Json/Rest). Contato : [email protected]
-
Prezados, sou novo no fórum, e estou prestando um serviço pra uma determinada empresa, onde ela está realizando um mini projeto de emissão de NFE no firemonkey, ela anteriormente veio utilizando a VCL + ACBRNFe. A questão é que no Delphi XE3 ao inserir um componente da ACBR no firemonkey ele nem mesmo compila, então resolvi fazer uma adaptação para que o ACBR funciona-se no FMX. Avaliando o projeto ele não tem nenhum impedimento para funcionar no firemonkey, visto que nada ou quase nada utiliza interface. O único problema que eu pude visualiza foi em relação a biblioteca ACBRCAPICOM_TLB.PAS onde é utilizado o OleServer.pas que somente existe na VCL. Mas analisando esta biblioteca pode-se verificar que ela somente faz uso das API do Windows, que também podem ser acessadas do firemonkey, escrevi um arquivo chamado FMX.OleServer.Pas e FMX.OleConsts.Pas para fazer a substituição trocando o bloco de código uses Vcl.OleConst, Vcl.Controls; Por uses FMX.OleConst, FMX.Controls, FMX.Types; E no final do arquivo initialization GroupDescendentsWith(TOleServer, Vcl.Controls.TControl); Por initialization GroupDescendentsWith(TOleServer, FMX.Types.TControl); O segundo problema é que tanto no Delphi XE2 e no Delphi XE3 não existe conditional compilation para determinar se o projeto é proveniente do Firemonkey ou VCL, então a solução encontrada por mim seria utilizar a Conditional Defines disponibilizada nas opções dos projetos, desta forma seria possível o mesmo componente ser utilizado para VCL e Firemonkey sem grandes dificuldades, é claro que deve ser de bom censo de todos que utilizam o componente sem o código fonte, que as DCU compiladas para o FMX não serão utilizadas na VCL e vice-versa. Os demais arquivos alterados foram: ACBrCAPICOM_TLB.pas ACBrDFeUtil.pas ACBrMSXML2_TLB.pas ACBrNFe.pas ACBrNFeDANFEClass.pas ACBrNFeNotasFiscais.pas ACBrNFeWebServices.pas FMX.OleServer.pas FMX.OleConst.pas Os seguintes itens foram testados em Delphi XE3 no Windows 8 x64 no ambiente de Homologação: Pedido de Seleção do Certificado Pela Capicom no repositório do Windows. Pedido de Status do Servidor Envio de Nota Fiscal Vale lembrar que este recurso é somente para o Windows! Editado em 17/01/2013 - Correção na função GetAppExeName ACBrNFeUtil.pas Editado em 17/01/2013 15:30 - Unit PCN forçando uso da VCL no FMX (Corrigido) pcnNFe.pas ACBrCAPICOM_TLB.pas ACBrDFeUtil.pas ACBrMSXML2_TLB.pas ACBrNFe.pas ACBrNFeDANFEClass.pas ACBrNFeNotasFiscais.pas ACBrNFeWebServices.pas FMX.OleServer.pas FMX.OleConst.pas ACBrNFeUtil.pas pcnNFe.pas
- 29 replies
-
- 1
-
- Firemonkey
- FMX
-
(e 2 mais)
Tags:
-
Prezados, gostaria de registrar aqui, que passamos na homologação do TEF da NTK usando o componente da ACBr + Firemonkey. Lembrando que se for fazer os testes do TEF em FMX existe um item para ser levantado ainda que está esperando análise, você pode baixar o arquivo no post abaixo em quanto isso.
-
Prezados, a um tempo fiz as alterações, estou encaminhando aqui para subir. As alterações necessárias foram poucas, ou quase nada, se trata mais de algumas constantes que no firemonkey se encontram em outros arquivos, e a questão de puxar a janela para a frente que muda um pouco. ACBrTEFDClass.pas ACBrTEFDCliDTEF.pas ACBrTEFDCliSiTef.pas ACBrTEFDTicketCar.pas ACBrTEFDVeSPague.pas ACBrTEFD.pas ACBrTEFDBanese.pas
-
Compatibilidade ACBR com Firemonkey
um tópico no fórum postou Wendel Fassarella Dúvidas Gerais sobre o ACBr
alguém sabe me informar se o acbr vai ser compatível com firemonkey em algum momento? -
Bom, depois de muitas horas, consegui colocar para funcionar a função de procurar porta no Firemonkey. Não tive a oportunidade de testar todo o componente, mas pelo que pude verificar a única coisa que impedia ele de funcionar como deveria era o formulário de diálogo do ACBrECF. Então venho aqui trazer as modificações e suas justificativas. Observações Todas as alterações foram testadas em uma impressora DARUMA MACH 2. A versão do Delphi foi XE8 Trial, muito provável alguma coisa ou outra não vá funcionar em XE5-XE2 sem alguma alteração muito pequena.(talvez apenas tipos). Foi adicionado um IFDEF VER290(XE8) , cabe a alguém testar em versões anterior e verificar o funcionamento. Novas USES (Somente FMX) System.Character - Utilizada para conversão em variáveis do tipo CHAR. System.Types - Utilizada para utilização em run-time de variáveis do tipo TRectF em canvas do Firemonkey. System.UIConsts - Utilizada para conversão de variáveis do tipo cor do Firemonkey (TAlphaColor). Problemas Encontrados Não era possível exibir formulários em run-time no firemonkey, apresentava erro de resource, a solução foi utilizar o CreateNew: {$IFNDEF FMX} fsFormMsg := TForm.create( Application ) ; {$ELSE} fsFormMsg := TForm.CreateNew( Application ) ; {$ENDIF} A cor de fundo do formulário não era alterada: fsFormMsg.Fill.Kind := TBrushKind.Solid; As propriedades da fonte como também sua cor não era possível de serem alteradas (foi adicionado uma tarefa por vocês para futuro). Uma observação é que a propriedade "TagStr",é presente em todos os componentes Firemonkey. <b>ACBrECF.pas</b> - Adicionado nova propriedade para cor de fonte apenas para o firemonkey property FormMsgColorFont : TAlphaColor read fsFormMsgColorFont write fsFormMsgColorFont ; //Realiza composição das 3 informações em apenas 1 tag fsFormMsg.TagString := ECF.FormMsgFonte.Size.ToString + ';' + ECF.FormMsgFonte.Family + ';' + AlphaColorToString(ECF.FormMsgColorFont); <b>ACBrECFClass.pas</b> - Depois é desmontada para leitura das informações //Carregando informações da fonte, family e cor with TStringList.Create do try StrictDelimiter := True; Delimiter := ';'; DelimitedText := fsFormMsg.TagString; fsFormMsg.Canvas.Font.Size := Strings[0].ToSingle; fsFormMsg.Canvas.Font.Family := Strings[1]; fsFormMsg.Canvas.Fill.Kind := TBrushKind.None; fsFormMsg.Canvas.Fill.Color := StringToAlphaColor(Strings[2]); finally Free; end; A rotina de desenho não estava adequada para o Firemonkey. fsFormMsg.Width := Round(fsFormMsg.Canvas.TextWidth(Texto)) + 25; fsFormMsg.Height := Round(fsFormMsg.Canvas.TextHeight(Texto))+ 15; Application.ProcessMessages; //Se não adicionar essa linha, o firemonkey não faz a pintura o texto. fsFormMsg.Canvas.BeginScene; //Todo canvas no firemonkey é necessário este bloco de proteção. try fsFormMsg.Canvas.StrokeThickness := 1; //Espessura do pincel. fsFormMsg.Canvas.FillText(TRectF.Create(0, 0, fsFormMsg.Width, fsFormMsg.Height), Texto, True, 100, [], TTextAlign.Center, TTextAlign.Center); finally fsFormMsg.Canvas.EndScene; end; Por ultimo, e não menos importante, a rotina de pressionar a tecla para cancelar o dialogo não estava funcionando, o código informado não atende a situações diversas que o Firemonkey apresenta no OnKeyDown. O Firemonkey quando pressionado por uma tecla que não é dita como especial, a variável KeyChar é preenchida, porem se você utilizar uma tecla como F1 ou ENTER o KeyChar fica em branco, então o Key é preenchido. if (fsFormMsgTeclaParaFechar <> 0) and (fsFormMsgEstado <> fmsAbortado) then begin if (KeyChar <> #0) and (Integer(KeyChar.ToUpper) = fsFormMsgTeclaParaFechar) then fsFormMsgEstado := fmsAbortado else if (Key > 0) and (Key = fsFormMsgTeclaParaFechar) then fsFormMsgEstado := fmsAbortado else begin Key := 0; KeyChar := #0; end; end; ACBrECFClass.pas ACBrECF.pas
- 19 replies
-
- 1
-
- firemonkey
- data lider
- (e 2 mais)
-
[DICA] Uso simultâneo de VCL e FMX na ACBr
um tópico no fórum postou Data Lider Dúvidas Gerais sobre o ACBr
Atenção para XE2+ Bom, essa semana estamos com necessidade de utilização de dois projetos em ambos ambientes VCL e FMX, enfrentamos alguns problemas de compilação das Unit ACBR, e principalmente versões geradas incorretas porque a SCOPE estava invertida no momento da compilação, então vou adicionar algumas informações para registro e pesquisa de usuários. Projeto 1 - VCL Projeto 2 - FMX Problema 1 - A ACBr.INC é unificada dentro da pasta de fontes do componente ACBrCupom, sempre quando necessário compilar um projeto de cada framework era necessário a troca. Solução - Excluído o arquivo, e adicionado na pasta dos projetos, cada um com sua definação VCL ou FMX. ------------------------ Problema 2 - Mesmo adicionado essas definições, existe o conflito de Units, eu posso ter "Dialog" para VCL (VCL.Dialog) como também para FMX (FMX.Dialog). Em quanto essa dúvida não for respondida não é possível compilar o projeto, para não ter que alterar todas as units do projeto, é necessário ir em Tools -> Options -> Delphi Options -> Libary e então preencher o campo "Unit scope names:" com o valor padrão, seja ele VCL ou FMX, assim é possível saber de qual dialogo será compilado. Isso gera problemas como compilar units VCL dentro do Firemonkey (sim é isso é possível) e trazer problemas futuros para o projeto, principalmente de você trabalhar como OSX que é o nosso caso, nos enfrentamos fechamento de janelas inexplicáveis por esse motivo. Solução - Deixar o campo em branco, e definir a Unit scope names no projeto, basta ir em "Project > Options > Delphi Compiler > Unit Scope Names" e então clicar em "..." e adicionar. (Lembrando que isso é armazenado por configuração, o use seja você precisa configurar tanto em Debug como Release).