Ir para conteúdo
  • Cadastre-se

johnbh3

Membros
  • Total de ítens

    690
  • Registro em

  • Última visita

Tudo que johnbh3 postou

  1. Achei este topico mas nao e bem sobre gmail será que gmail n funciona mais? pq se n funciona começou hj pra mim. Eu tinha uma senha secundaria com nome de um app. Sempre foi de boa.
  2. Vc sabe o video? ou topico ate pesquisei por Unable to send MailFrom. Estranhamente isto começou do nada
  3. Ola Começou a acontecer isto Erro: SMTP Error: Unable to send MailFrom. 535 5.7.8 https://support.google.com/mail/?p=BadCredentials h2-20020a170902748200b001e3dda6511esm9925030pll.101 - gsmtp 530 5.7.0 https://support.google.com/mail/?p=WantAuthError h2-20020a170902748200b001e3dda6511esm9925030pll.101 - gsmtp
  4. Pessoal eu baixei do git como indica aqui GitHub - project-jedi/jvcl: JEDI Visual Component Library instalei pelo C:\Delphi\Delphi2009New\jvcl-master\jvcl\install.bat até compila pelo executavel do JEDI tudo certinho. Mas ai abro o delphi 2009 Da um erro cant package C:\Users\Public\Documents\RAD Studio\6.0\Bpl e da erro em todas BPL Não foi possível encontrar o modulo especificado. Do yoy want attempt to load this package the next time a project is loaded
  5. Resolvi postei em De toda forma obrigado !
  6. resolvido Fiz isto PintarQRCodeEstatico (); var i : integer; qrCodeData: string; begin ACBrPixCD1.Recebedor.Nome := DmDados.configuracao('NOME_PIX'); ACBrPixCD1.Recebedor.CEP := DmDados.configuracao('END_CEPPIX'); ACBrPixCD1.Recebedor.Cidade := DmDados.configuracao('END_CIDADEPIX'); ACBrPixCD1.Recebedor.UF := DmDados.configuracao('END_UFPIX'); lblNomePIX.Text := 'PAGAMENTO PARA, '+ACBrPixCD1.Recebedor.Nome; if DmDados.configuracao('TIPO_CHAVEPIX') = '1' Then begin ACBrPixBradesco.ChavePIX :='+5531'+DmDados.configuracao('CHAVE_PIX') end else begin ACBrPixBradesco.ChavePIX := DmDados.configuracao('CHAVE_PIX'); end; qrCodeData := ACBrPixCD1.GerarQRCodeEstatico( precoACobrar, 'PAGAMENTO ESTACIONAMENTO', ''); {$IFDEF MSWINDOWS} QRCodeWin(imgQR, qrCodeData); {$ELSE} QRCodeMobile(imgQR, qrCodeData); {$ENDIF} end; Usei o acbr para gerar a string do qrCode Quando mobile pela directiva procedure TfrmSaidaVeiculo.QrCodeMobile(imgQRCode: TImage; texto: string); const downsizeQuality: Integer = 2; // bigger value, better quality, slower rendering var QRCode: TDelphiZXingQRCode; Row, Column: Integer; pixelColor : TAlphaColor; vBitMapData : TBitmapData; pixelCount, y, x: Integer; columnPixel, rowPixel: Integer; function GetPixelCount(AWidth, AHeight: Single): Integer; begin if QRCode.Rows > 0 then Result := Trunc(Min(AWidth, AHeight)) div QRCode.Rows else Result := 0; end; begin // Not a good idea to stretch the QR Code... if imgQRCode.WrapMode = TImageWrapMode.Stretch then imgQRCode.WrapMode := TImageWrapMode.Fit; QRCode := TDelphiZXingQRCode.Create; try QRCode.Data := ' ' + texto; QRCode.Encoding := TQRCodeEncoding.qrAuto; QRCode.QuietZone := 4; pixelCount := GetPixelCount(imgQRCode.Width, imgQRCode.Height); case imgQRCode.WrapMode of TImageWrapMode.Original, TImageWrapMode.Tile, TImageWrapMode.Center: begin if pixelCount > 0 then imgQRCode.Bitmap.SetSize(QRCode.Columns * pixelCount, QRCode.Rows * pixelCount); end; TImageWrapMode.Fit: begin if pixelCount > 0 then begin imgQRCode.Bitmap.SetSize(QRCode.Columns * pixelCount * downsizeQuality, QRCode.Rows * pixelCount * downsizeQuality); pixelCount := pixelCount * downsizeQuality; end; end; //TImageWrapMode.iwStretch: // raise Exception.Create('Not a good idea to stretch the QR Code'); end; if imgQRCode.Bitmap.Canvas.BeginScene then begin try imgQRCode.Bitmap.Canvas.Clear(TAlphaColors.White); if pixelCount > 0 then begin if imgQRCode.Bitmap.Map(TMapAccess.Write, vBitMapData) then begin try For Row := 0 to QRCode.Rows - 1 do begin for Column := 0 to QRCode.Columns - 1 do begin if (QRCode.IsBlack[Row, Column]) then pixelColor := TAlphaColors.Black else pixelColor := TAlphaColors.White; columnPixel := Column * pixelCount; rowPixel := Row * pixelCount; for x := 0 to pixelCount - 1 do for y := 0 to pixelCount - 1 do vBitMapData.SetPixel(columnPixel + x, rowPixel + y, pixelColor); end; end; finally imgQRCode.Bitmap.Unmap(vBitMapData); end; end; end; finally imgQRCode.Bitmap.Canvas.EndScene; end; end; finally QRCode.Free; end; end; Vai que sirva pra alguem funcionou todos os bancos. E qualidade ficou otima! Agora funciona desktop e mobile.
  7. Eu observei que o erro e chave celular Mesmo usando o demo ACBR - Exemplos\ACBrPIXCD\Delphi da o mesmo errado Lá tem obrigada por a chave com +55DDDNUMEROTEL Se colocar no demo apenas NUMERODOTELEFONE vai conter 11 digitos (igual CPF). Mas acredito ser um BUG quando usa o telefone, e de fato precisa por +55CHAVE mas ele gera o QrCode invalido.
  8. Em VCL simplismente funciona normal. Mesmo codigo, mesmo pq n aparenta ter erros no codigo. No mobile perde qualidade da imagem.
  9. Ola Estou usando o PIX estatico sem necessidade de confirmar pagamento. Eu gerei com chave PIX que origem e bradesco. Ai vou no banco itau e vou scnear da erro iso no meu aparelho. No inter da certo Porém fui no santander deu erro tb. O bradesco de outro aparelho com outra esposa tambem da erro. Fiz a leitura do pagseguro também não funciona. Estranho ne! To usando fmx. procedure TfrmSaidaVeiculo.PintarQRCodeEstatico (aChavePix: string); var i : integer; mQRE : TStringList; begin mQRE := TStringList.Create; try ACBrPixCD1.PSP := ACBrPixBradesco; ACBrPixBradesco.ChavePIX := aChavePix; i:= Integer(DetectarTipoChave(aChavePix)); if i = 4 then begin aChavePix := '+55'+aChavePix; end; mQRE.Text := ACBrPixCD1.GerarQRCodeEstatico( precoACobrar, 'PGTO ESTACIONAMENTO', IntToStr(Random(300))); PintarQRCode(mQRE.Text, imgQRE.Bitmap, qrUTF8BOM); finally FreeAndNil(mQRE); end; end; procedure TfrmSaidaVeiculo.btnPixClick(Sender: TObject); begin ACBrPixCD1.Recebedor.Nome := DmDados.configuracao('NOME_PIX'); ACBrPixCD1.Recebedor.CEP := DmDados.configuracao('END_CEPPIX'); ACBrPixCD1.Recebedor.Cidade := DmDados.configuracao('END_CIDADEPIX'); ACBrPixCD1.Recebedor.UF := DmDados.configuracao('END_UFPIX'); lblNomePIX.Text := ACBrPixCD1.Recebedor.Nome; PintarQRCodeEstatico(DmDados.configuracao('CHAVE_PIX')); end;
  10. Estranho, não nenhuma excepcion E qual dll por exemplo? Visto que vcl nem dll tem na pasta do exe funciona, no fmx Android idem E só pix estático n entendi o pq que seria só printar o qrCode só n exige fmx/Windows
  11. Abri com android e exibi com FMX. Só não exibe quando e FMX no windows estranho
  12. Ola Eu estou tentando gerar pix estatatico com firemonkey funciona? Seguinte eu fiz em VCL vs Firemokey VCL funciona uses ACBrDelphiZXingQRCode,ACBrImage, ACBrPIXUtil; procedure TForm1.btQREGerarClick(Sender: TObject); begin ACBrPixCD1.Recebedor.Nome := 'SOUZA'; ACBrPixCD1.Recebedor.CEP := '31950280'; ACBrPixCD1.Recebedor.Cidade := 'BELO HORIZONTE'; ACBrPixCD1.Recebedor.UF := 'MG'; PintarQRCodeEstatico('073XXXXX8641'); end; procedure TForm1.PintarQRCodeEstatico (sChave: string); var i : integer; begin ACBrPixCD1.PSP := ACBrPSPPagSeguro1; ACBrPSPPagSeguro1.ChavePIX := sChave; i:= Integer(DetectarTipoChave(sChave)); mQRE.Lines.Text := ACBrPixCD1.GerarQRCodeEstatico( StrToFloatDef('1,00', 0), '', ''); PintarQRCode(mQRE.Lines.Text, imgQRE.Picture.Bitmap, qrUTF8BOM); end; Em FMX não funciona {$R *.fmx} uses ACBrDelphiZXingQRCode,ACBrImage, ACBrPIXUtil; procedure TForm1.btQREGerarClick(Sender: TObject); begin ACBrPixCD1.Recebedor.Nome := 'JSOUZA'; ACBrPixCD1.Recebedor.CEP := '31950280'; ACBrPixCD1.Recebedor.Cidade := 'BELO HORIZONTE'; ACBrPixCD1.Recebedor.UF := 'MG'; PintarQRCodeEstatico('0SSSSS8641'); end; procedure TForm1.PintarQRCodeEstatico (sChave: string); var i : integer; begin ACBrPixCD1.PSP := ACBrPSPPagSeguro1; ACBrPSPPagSeguro1.ChavePIX := sChave; i:= Integer(DetectarTipoChave(sChave)); mQRE.Lines.Text := ACBrPixCD1.GerarQRCodeEstatico( StrToFloatDef('1,00', 0), '', ''); PintarQRCode(mQRE.Lines.Text,imgQRE.Bitmap, qrUTF8BOM); end; Debugando em procedure PintarQRCode(const QRCodeData: String; ABitMap: TBitmap; que chama no ACBrImage Quando dou ctrl+f7 no delphi pra inspecionar a variavel QRCodeBitmap e mando SaveToFile e gerou uma uma imagem bmp 47po47 tudo preto. debuguei aqui procedure PintarQRCode(const QRCodeData: String; ABitMap: TBitmap; const AEncoding: TQRCodeEncoding); var QRCode: TDelphiZXingQRCode; QRCodeBitmap: TBitmap; Row, Column: Integer; {$IfDef FMX} BitMapData: TBitmapData; {$EndIf} begin QRCode := TDelphiZXingQRCode.Create; QRCodeBitmap := TBitmap.Create; try QRCode.Encoding := AEncoding; QRCode.QuietZone := 1; QRCode.Data := widestring(QRCodeData); //QRCodeBitmap.SetSize(Q unit completa do FMX copia do VCL unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Objects, FMX.Controls.Presentation, FMX.StdCtrls, FMX.Memo.Types, FMX.ScrollBox, FMX.Memo, ACBrPIXCD, ACBrPIXPSPPagSeguro, ACBrBase; type TForm1 = class(TForm) imgQRE: TImage; btQREGerar: TButton; mQRE: TMemo; ACBrPSPPagSeguro1: TACBrPSPPagSeguro; ACBrPixCD1: TACBrPixCD; procedure btQREGerarClick(Sender: TObject); private procedure PintarQRCodeEstatico(sChave: string); { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.fmx} uses ACBrDelphiZXingQRCode,ACBrImage, ACBrPIXUtil; procedure TForm1.btQREGerarClick(Sender: TObject); var BitMapData: TBitmapData; begin ACBrPixCD1.Recebedor.Nome := 'JOHN KENNEDY OLIVEIRA SOUZA'; ACBrPixCD1.Recebedor.CEP := '31950280'; ACBrPixCD1.Recebedor.Cidade := 'BELO HORIZONTE'; ACBrPixCD1.Recebedor.UF := 'MG'; PintarQRCodeEstatico('07342XXXX41'); end; procedure TForm1.PintarQRCodeEstatico (sChave: string); var i : integer; begin ACBrPixCD1.PSP := ACBrPSPPagSeguro1; ACBrPSPPagSeguro1.ChavePIX := sChave; i:= Integer(DetectarTipoChave(sChave)); mQRE.Lines.Text := ACBrPixCD1.GerarQRCodeEstatico( StrToFloatDef('1,00', 0), '', ''); PintarQRCode(mQRE.Lines.Text,imgQRE.Bitmap, qrUTF8BOM); end; end. DETALHE ESTOU TESTOU O fmx no proprio windows.
  13. Pessoa Onde esta meu erro? /zera> </ce> <e>SHOPPING CIDADE</e> Rua General , 12 Bairro: centro Belo Horizonte - MG <n>Tel: (31) 3488-1234</n> </linha_simples> <n>COMPPROVANTE DE ENTRADA</n></fn> </linha_simples> PLACA: HOJ-XXXX Marca: PATIO Cor: Cinza Tipo: Horista </linha_simples> <n>Tel: R$ 10,00</n> </corte_total> Até comprovante de entrada fica como espero (Centralizado e COMPPROVANTE DE ENTRADA em negrito). Porém o resto abaixo também fica ao centro. Queria que fique a direita o resto PLACA: HOJ-XXXX Marca: PATIO Cor: Cinza Tipo: Horista </linha_simples> <n>Tel: R$ 10,00</n> </corte_total> Esta saindo assim ------------------------------------- TESTE Rua General , 12 Bairro: centro ------------------------------------- PLACA: HOJ-XXXX Marca: PATIO Cor: Cinza Tipo: Horista Queria que ficasse assim ------------------------------------- TESTE Rua General , 12 Bairro: centro ------------------------------------- PLACA: HOJ-XXXX Marca: PATIO Cor: Cinza Tipo: Horista
  14. unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls, ACBrBase, ACBrPosPrinter, System.Permissions, System.TypInfo, System.StrUtils, ACBrPosPrinterElginE1Service, ACBrPosPrinterElginE1Lib, ACBrPosPrinterTecToySunmiLib, {$IFDEF ANDROID} Androidapi.Helpers, Androidapi.JNI.JavaTypes, Androidapi.JNI.Os, FMX.ListBox, ACBrUtil.FilesIO, FMX.Memo.Types, FMX.ScrollBox, FMX.Memo, System.ImageList, FMX.ImgList, FMX.Gestures, FMX.Edit, FMX.EditBox, FMX.SpinBox, FMX.Layouts, FMX.TabControl {$ENDIF} ; type TfrmImpressora = class(TForm) tabsPrincipal: TTabControl; tabConfig: TTabItem; ToolBar1: TToolBar; lblTituloConfig: TLabel; ListBox1: TListBox; ListBoxGroupHeader1: TListBoxGroupHeader; ListBoxGroupHeader5: TListBoxGroupHeader; lbiClasse: TListBoxItem; GridPanelLayout6: TGridPanelLayout; rbClasseInterna: TRadioButton; rbClasseExterna: TRadioButton; lbModelos: TListBoxItem; cbxModelo: TComboBox; cbxPagCodigo: TComboBox; Layout2: TLayout; cbControlePorta: TCheckBox; cbSmartPOS: TCheckBox; ListBoxGroupHeader2: TListBoxGroupHeader; lbImpressoras: TListBoxItem; cbxImpressorasBth: TComboBox; btnProcurarBth: TCornerButton; chbTodasBth: TCheckBox; ListBoxGroupHeader3: TListBoxGroupHeader; lbLarguraEspacejamento: TListBoxItem; GridPanelLayout1: TGridPanelLayout; Label2: TLabel; Label3: TLabel; Label7: TLabel; seColunas: TSpinBox; seEspLinhas: TSpinBox; seLinhasPular: TSpinBox; ListBoxGroupHeader4: TListBoxGroupHeader; lbCodBarras: TListBoxItem; GridPanelLayout5: TGridPanelLayout; Label1: TLabel; Label4: TLabel; cbHRI: TCheckBox; seBarrasLargura: TSpinBox; seBarrasAltura: TSpinBox; cbSuportaBMP: TCheckBox; lbBotoes: TListBoxItem; GridPanelLayout2: TGridPanelLayout; btLerConfig: TCornerButton; btSalvarConfig: TCornerButton; Layout1: TLayout; SpeedButton1: TSpeedButton; btnAtivar: TCornerButton; tabTeste: TTabItem; ToolBar2: TToolBar; lblTituloTestes: TLabel; btnBack: TSpeedButton; GridPanelLayout3: TGridPanelLayout; btnTiposLetra: TButton; btAlinhamento: TButton; btnBarras: TButton; btQRCode: TButton; btAcentos: TButton; btnLerStatus: TButton; btnLerInfo: TButton; btBeep: TButton; btnAbrirGaveta: TButton; btnCortarPapel: TButton; mImp: TMemo; GridPanelLayout4: TGridPanelLayout; btnImprimir: TCornerButton; btnLimpar: TCornerButton; StyleBook1: TStyleBook; GestureManager1: TGestureManager; ImageList1: TImageList; ACBrPosPrinter1: TACBrPosPrinter; procedure FormActivate(Sender: TObject); procedure btnProcurarBthClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure btnAtivarClick(Sender: TObject); procedure btnTiposLetraClick(Sender: TObject); procedure btnImprimirClick(Sender: TObject); procedure btQRCodeClick(Sender: TObject); procedure btAlinhamentoClick(Sender: TObject); procedure rbClasseInternaClick(Sender: TObject); private fE1Printer: TACBrPosPrinterElginE1Service; {$IfDef ANDROID} //fGEDIPrinter: TACBrPosPrinterGEDI; fE1Lib: TACBrPosPrinterElginE1Lib; fSunmiPrinter: TACBrPosPrinterTecToySunmiLib; {$EndIf} fsTemPermissao: Boolean; function PedirPermissoes: Boolean; function PedirPermissoes2: Boolean; procedure ConfigurarACBrPosPrinter; procedure CarregarModelosExternos; procedure CarregarModelosInternos; { Private declarations } public { Public declarations } end; var frmImpressora: TfrmImpressora; implementation {$R *.fmx} procedure TfrmImpressora.CarregarModelosExternos; begin cbxModelo.Items.Clear; cbxModelo.Items.Add('Elgin E1 Service'); cbxModelo.Items.Add('Elgin E1 Lib'); //cbxModelo.Items.Add('Gertec GEDI'); cbxModelo.Items.Add('TecToy Sunmi Service'); end; function TfrmImpressora.PedirPermissoes2: Boolean; var Ok: Boolean; LPermissions: TArray<String>; begin Ok := fsTemPermissao; if not Ok then begin if (TOSVersion.Major < 12) then begin SetLength(LPermissions, 2); LPermissions[0] := JStringToString(TJManifest_permission.JavaClass.BLUETOOTH); LPermissions[1] := JStringToString(TJManifest_permission.JavaClass.BLUETOOTH_ADMIN); end else begin SetLength(LPermissions, 3); LPermissions[0] := 'android.permission.BLUETOOTH_ADVERTISE'; LPermissions[1] := 'android.permission.BLUETOOTH_CONNECT'; LPermissions[2] := 'android.permission.BLUETOOTH_SCAN'; end; mImp.Lines.Add('4'); PermissionsService.RequestPermissions(LPermissions, procedure(const APermissions: TClassicStringDynArray; const AGrantResults: TClassicPermissionStatusDynArray) begin mImp.Lines.Add('5'); Ok := (Length(AGrantResults) = Length(LPermissions)); if Ok then begin for var GR in AGrantResults do begin if (GR <> TPermissionStatus.Granted) then begin Ok := False; Break; end; end; end; end, nil); end; fsTemPermissao := Ok; Result := Ok; end; procedure TfrmImpressora.CarregarModelosInternos; var m: TACBrPosPrinterModelo; begin cbxModelo.Items.Clear; For m := Low(TACBrPosPrinterModelo) to High(TACBrPosPrinterModelo) do cbxModelo.Items.Add( GetEnumName(TypeInfo(TACBrPosPrinterModelo), integer(m) ) ); end; procedure TfrmImpressora.rbClasseInternaClick(Sender: TObject); begin if rbClasseInterna.IsChecked then CarregarModelosInternos else CarregarModelosExternos; end; function TfrmImpressora.PedirPermissoes: Boolean; begin Result := ACBrPosPrinter1.Device.PedirPermissoesBlueTooth; end; procedure TfrmImpressora.ConfigurarACBrPosPrinter; begin if not PedirPermissoes then exit; if rbClasseExterna.IsChecked then begin if cbSmartPOS.IsChecked then begin fE1Printer.Modelo := TElginE1Printers.prnSmartPOS; fE1Lib.Modelo := TElginE1LibPrinters.prnSmartPOS; end else begin fE1Printer.Modelo := TElginE1Printers.prnM8; fE1Lib.Modelo := TElginE1LibPrinters.prnM8; end; case cbxModelo.ItemIndex of 0: ACBrPosPrinter1.ModeloExterno := fE1Printer; 1: ACBrPosPrinter1.ModeloExterno := fE1Lib; //2: ACBrPosPrinter1.ModeloExterno := fGEDIPrinter; else ACBrPosPrinter1.ModeloExterno := fSunmiPrinter; end; cbxImpressorasBth.ItemIndex := cbxImpressorasBth.Items.IndexOf('NULL'); end else begin if Assigned(cbxModelo.Selected) then ACBrPosPrinter1.Modelo := TACBrPosPrinterModelo(cbxModelo.ItemIndex) else ACBrPosPrinter1.Modelo := ppTexto; if Assigned(cbxImpressorasBth.Selected) then ACBrPosPrinter1.Porta := cbxImpressorasBth.Selected.Text else if cbxImpressorasBth.ItemIndex = cbxImpressorasBth.Items.IndexOf('NULL') then cbxImpressorasBth.ItemIndex := -1; end; if Assigned(cbxPagCodigo.Selected) then ACBrPosPrinter1.PaginaDeCodigo := TACBrPosPaginaCodigo(cbxPagCodigo.ItemIndex); ACBrPosPrinter1.ColunasFonteNormal := Trunc(seColunas.Value); ACBrPosPrinter1.EspacoEntreLinhas := Trunc(seEspLinhas.Value); ACBrPosPrinter1.LinhasEntreCupons := Trunc(seLinhasPular.Value); ACBrPosPrinter1.ConfigLogo.KeyCode1 := 1; ACBrPosPrinter1.ConfigLogo.KeyCode2 := 0; ACBrPosPrinter1.ControlePorta := cbControlePorta.IsChecked; end; procedure TfrmImpressora.btAlinhamentoClick(Sender: TObject); //var // BmpMono: String; // HasBMP: Boolean; begin // BmpMono := ApplicationPath+'acbrmono.bmp'; // HasBMP := cbSuportaBMP.IsChecked and FileExists(BmpMono); mImp.Lines.Add('</zera>'); mImp.Lines.Add('</linha_dupla>'); mImp.Lines.Add('TEXTO NORMAL'); mImp.Lines.Add('</ae>ALINHADO A ESQUERDA'); // if HasBMP then // mImp.Lines.Add('<bmp>'+BmpMono+'</bmp>'); mImp.Lines.Add('1 2 3 TESTANDO'); mImp.Lines.Add('<n>FONTE NEGRITO</N>'); mImp.Lines.Add('<e>FONTE EXPANDIDA</e>'); mImp.Lines.Add('<a>FONTE ALT.DUPLA</a>'); mImp.Lines.Add('<c>FONTE CONDENSADA</c>'); mImp.Lines.Add('<in>FONTE INVERTIDA'); mImp.Lines.Add('</in><S>FONTE SUBLINHADA</s>'); mImp.Lines.Add('<i>FONTE ITALICO</i>'); { mImp.Lines.Add('</fn></ce>ALINHADO NO CENTRO'); // if HasBMP then // mImp.Lines.Add('<bmp>'+BmpMono+'</bmp>'); mImp.Lines.Add('1 2 3 TESTANDO'); mImp.Lines.Add('<n>FONTE NEGRITO</N>'); mImp.Lines.Add('<e>FONTE EXPANDIDA</e>'); mImp.Lines.Add('<a>FONTE ALT.DUPLA</a>'); mImp.Lines.Add('<c>FONTE CONDENSADA</c>'); mImp.Lines.Add('<in>FONTE INVERTIDA'); mImp.Lines.Add('</in><S>FONTE SUBLINHADA</s>'); mImp.Lines.Add('<i>FONTE ITALICO</i>'); mImp.Lines.Add('</fn></ad>ALINHADO A DIREITA'); // if HasBMP then // mImp.Lines.Add('<bmp>'+BmpMono+'</bmp>'); mImp.Lines.Add('1 2 3 TESTANDO'); mImp.Lines.Add('<n>FONTE NEGRITO</N>'); mImp.Lines.Add('<e>FONTE EXPANDIDA</e>'); mImp.Lines.Add('<a>FONTE ALT.DUPLA</a>'); mImp.Lines.Add('<c>FONTE CONDENSADA</c>'); mImp.Lines.Add('<in>FONTE INVERTIDA'); mImp.Lines.Add('</in><S>FONTE SUBLINHADA</s>'); mImp.Lines.Add('<i>FONTE ITALICO</i>'); mImp.Lines.Add('</ae></fn>TEXTO NORMAL'); } mImp.Lines.Add('</corte_total>'); end; procedure TfrmImpressora.btnAtivarClick(Sender: TObject); begin ConfigurarACBrPosPrinter; ACBrPosPrinter1.Ativar; lblTituloTestes.Text := 'Testes em: '+ACBrPosPrinter1.Porta; mImp.Lines.Clear; tabsPrincipal.Next; end; procedure TfrmImpressora.btnImprimirClick(Sender: TObject); begin ACBrPosPrinter1.Buffer.Text := mImp.Lines.Text; ACBrPosPrinter1.Imprimir; // ACBrPosPrinter1.Imprimir(mImp.Lines.Text); end; procedure TfrmImpressora.btnProcurarBthClick(Sender: TObject); var sl: TStringList; begin if not PedirPermissoes then exit; cbxImpressorasBth.Items.Clear; try ACBrPosPrinter1.Device.AcharPortasBlueTooth( cbxImpressorasBth.Items, chbTodasBth.IsChecked ); cbxImpressorasBth.Items.Add('NULL'); except end; sl := TStringList.Create; try ACBrUtil.FilesIO.FindFiles('/dev/tty*', sl, True ); cbxImpressorasBth.Items.AddStrings(sl); finally sl.Free; end; end; procedure TfrmImpressora.btnTiposLetraClick(Sender: TObject); begin mImp.Lines.Clear; mImp.Lines.Add('</zera>'); mImp.Lines.Add('</linha_dupla>'); mImp.Lines.Add('FONTE NORMAL: '+IntToStr(ACBrPosPrinter1.ColunasFonteNormal)+' Colunas'); mImp.Lines.Add(LeftStr('....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8', ACBrPosPrinter1.ColunasFonteNormal)); mImp.Lines.Add('<e>EXPANDIDO: '+IntToStr(ACBrPosPrinter1.ColunasFonteExpandida)+' Colunas'); mImp.Lines.Add(LeftStr('....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8', ACBrPosPrinter1.ColunasFonteExpandida)); mImp.Lines.Add('</e><c>CONDENSADO: '+IntToStr(ACBrPosPrinter1.ColunasFonteCondensada)+' Colunas'); mImp.Lines.Add(LeftStr('....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8', ACBrPosPrinter1.ColunasFonteCondensada)); mImp.Lines.Add('</c><n>FONTE NEGRITO</N>'); mImp.Lines.Add('</corte_total>'); end; procedure TfrmImpressora.btQRCodeClick(Sender: TObject); begin mImp.Lines.Clear; mImp.Lines.Add('</zera>'); mImp.Lines.Add('</linha_dupla>'); mImp.Lines.Add('<qrcode_tipo>'+IntToStr(ACBrPosPrinter1.ConfigQRCode.Tipo)+'</qrcode_tipo>'); mImp.Lines.Add('<qrcode_largura>'+IntToStr(ACBrPosPrinter1.ConfigQRCode.LarguraModulo)+'</qrcode_largura>'); mImp.Lines.Add('<qrcode_error>'+IntToStr(ACBrPosPrinter1.ConfigQRCode.ErrorLevel)+'</qrcode_error>'); mImp.Lines.Add('<qrcode>http://projetoacbr.com.br</qrcode>'); mImp.Lines.Add('</ce>'); mImp.Lines.Add('<qrcode>http://www.projetoacbr.com.br/forum/index.php?/page/SAC/sobre_o_sac.html</qrcode>'); mImp.Lines.Add('</ad>'); mImp.Lines.Add('<qrcode>http://www.projetoacbr.com.br/forum/index.php?/page/SAC/questoes_importantes.html</qrcode>'); mImp.Lines.Add('</ce>'); mImp.Lines.Add('Exemplo de QRCode para NFCe'); mImp.Lines.Add('<qrcode_error>0</qrcode_error><qrcode>https://www.homologacao.nfce.fazenda.sp.gov.br/NFCeConsultaPublica/Paginas/ConsultaQRCode.aspx?'+ 'chNFe=35150805481336000137650220000000711000001960&nVersao=100&tpAmb=2&dhEmi=323031352D30382D31395432323A33333A32352D30333A3030&vNF=3.00&'+ 'vICMS=0.12&digVal=776967396F2B665861706673396878776E64594C396F61654C35493D&cIdToken=000001&cHashQRCode=9BD312D558823E1EC68CEDB338A39B6150B0480E</qrcode>'); mImp.Lines.Add('Exemplo de QRCode para SAT'); mImp.Lines.Add('<qrcode_error>0</qrcode_error><qrcode>35150811111111111111591234567890001672668828|20150820201736|118.72|05481336000137|'+ 'TCbeD81ePUpMvso4VjFqRTvs4ovqmR1ZG3bwSCumzHtW8bbMedVJjVnww103v3LxKfgckAyuizcR/9pXaKay6M4Gu8kyDef+6VH5qONIZV1cB+mFfXiaCgeZ'+ 'ALuRDCH1PRyb6hoBeRUkUk6lOdXSczRW9Y83GJMXdOFroEbzFmpf4+WOhe2BZ3mEdXKKGMfl1EB0JWnAThkGT+1Er9Jh/3En5YI4hgQP3NC2BiJVJ6oCEbKb'+ '85s5915DSZAw4qB/MlESWViDsDVYEnS/FQgA2kP2A9pR4+agdHmgWiz30MJYqX5Ng9XEYvvOMzl1Y6+7/frzsocOxfuQyFsnfJzogw==</qrcode>'); mImp.Lines.Add('</corte_total>'); end; procedure TfrmImpressora.FormActivate(Sender: TObject); var PermissionBLUETOOTH : String; begin if not PedirPermissoes2() then begin mImp.Lines.Add('Sem permissão onActive'); end; ShowMessage('Versão 1.1'); end; procedure TfrmImpressora.FormCreate(Sender: TObject); var p: TACBrPosPaginaCodigo; begin cbxPagCodigo.Items.Clear ; For p := Low(TACBrPosPaginaCodigo) to High(TACBrPosPaginaCodigo) do cbxPagCodigo.Items.Add( GetEnumName(TypeInfo(TACBrPosPaginaCodigo), integer(p) ) ) ; end; end. Eu fiz uma copia do demo! Em virtude do demo estar dando erro de compilar no alexandria. Mas tudo que tinha lá, veio pra ca.
  15. Eu to com um modelo aqui em mImp.Lines.Add('</c><n>FONTE NEGRITO</N>'); Teoricamente imprimiria negrito. Porém não imprime, mas a impressora tem opção negrito a página de teste funciona. Comprei dessas Mini Impressora Portatil Bluetooth Termica 58mm Tentie com pc850 e pc852 TUDO ISTO IMPRIMIU COM FONTE SIMPLES mImp.Lines.Clear; mImp.Lines.Add('</zera>'); mImp.Lines.Add('</linha_dupla>'); mImp.Lines.Add('FONTE NORMAL: '+IntToStr(ACBrPosPrinter1.ColunasFonteNormal)+' Colunas'); mImp.Lines.Add(LeftStr('....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8', ACBrPosPrinter1.ColunasFonteNormal)); mImp.Lines.Add('<e>EXPANDIDO: '+IntToStr(ACBrPosPrinter1.ColunasFonteExpandida)+' Colunas'); mImp.Lines.Add(LeftStr('....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8', ACBrPosPrinter1.ColunasFonteExpandida)); mImp.Lines.Add('</e><c>CONDENSADO: '+IntToStr(ACBrPosPrinter1.ColunasFonteCondensada)+' Colunas'); mImp.Lines.Add(LeftStr('....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8', ACBrPosPrinter1.ColunasFonteCondensada)); mImp.Lines.Add('</c><n>FONTE NEGRITO</N>'); mImp.Lines.Add('</corte_total>');
  16. johnbh3

    Ajuda com ESC/POS

    Pessoal no demo do ACBrPosPrinter Para imprimir no teste mImp.Lines.Clear; mImp.Lines.Add('</zera>'); mImp.Lines.Add('</linha_dupla>'); mImp.Lines.Add('FONTE NORMAL: '+IntToStr(ACBrPosPrinter1.ColunasFonteNormal)+' Colunas'); mImp.Lines.Add(LeftStr('....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8', ACBrPosPrinter1.ColunasFonteNormal)); mImp.Lines.Add('<e>EXPANDIDO: '+IntToStr(ACBrPosPrinter1.ColunasFonteExpandida)+' Colunas'); mImp.Lines.Add(LeftStr('....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8', ACBrPosPrinter1.ColunasFonteExpandida)); mImp.Lines.Add('</e><c>CONDENSADO: '+IntToStr(ACBrPosPrinter1.ColunasFonteCondensada)+' Colunas'); mImp.Lines.Add(LeftStr('....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8', ACBrPosPrinter1.ColunasFonteCondensada)); mImp.Lines.Add('</c><n>FONTE NEGRITO</N>'); mImp.Lines.Add('</corte_total>'); Eu queria imprimir algo assim -------------------------------------------- RECIBO -------------------------------------------- ID : 41 *Negrito* ENTRADA : 08/02/2020-19:18:05 SAIDA : 08/02/2020-19:18:29 Cliente : JOAO TESTE -------------------------------------------- VOLTE SEMPRE -------------------------------------------- Consegue me formular um exemplo de como eu alimentaria o mesmo assim?
  17. Claro eu marquei além das duas permissões na IDE de BLUETOOTH e marquei também dangerous (rum time use aproval) adverse, connet e scan. O Acbr já faz isto em LPermissions[0] := 'android.permission.BLUETOOTH_ADVERTISE'; LPermissions[1] := 'android.permission.BLUETOOTH_CONNECT'; LPermissions[2] := 'android.permission.BLUETOOTH_SCAN'; Por algum motivo da erro. Eu marquei tamném da IDE. E passei o ACBrPosPrinter1.Device.PedirPermissoesBlueTooth para onAcative do form. Eu refiz o demo, só com que precisava. unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls, ACBrBase, ACBrPosPrinter, System.Permissions, System.TypInfo, System.StrUtils, {$IFDEF ANDROID} Androidapi.Helpers, Androidapi.JNI.JavaTypes, Androidapi.JNI.Os, FMX.ListBox, ACBrUtil.FilesIO, FMX.Memo.Types, FMX.ScrollBox, FMX.Memo, System.ImageList, FMX.ImgList, FMX.Gestures, FMX.Edit, FMX.EditBox, FMX.SpinBox, FMX.Layouts, FMX.TabControl {$ENDIF} ; type TfrmImpressora = class(TForm) tabsPrincipal: TTabControl; tabConfig: TTabItem; ToolBar1: TToolBar; lblTituloConfig: TLabel; ListBox1: TListBox; ListBoxGroupHeader1: TListBoxGroupHeader; ListBoxGroupHeader5: TListBoxGroupHeader; lbiClasse: TListBoxItem; GridPanelLayout6: TGridPanelLayout; rbClasseInterna: TRadioButton; rbClasseExterna: TRadioButton; lbModelos: TListBoxItem; cbxModelo: TComboBox; cbxPagCodigo: TComboBox; Layout2: TLayout; cbControlePorta: TCheckBox; cbSmartPOS: TCheckBox; ListBoxGroupHeader2: TListBoxGroupHeader; lbImpressoras: TListBoxItem; cbxImpressorasBth: TComboBox; btnProcurarBth: TCornerButton; chbTodasBth: TCheckBox; ListBoxGroupHeader3: TListBoxGroupHeader; lbLarguraEspacejamento: TListBoxItem; GridPanelLayout1: TGridPanelLayout; Label2: TLabel; Label3: TLabel; Label7: TLabel; seColunas: TSpinBox; seEspLinhas: TSpinBox; seLinhasPular: TSpinBox; ListBoxGroupHeader4: TListBoxGroupHeader; lbCodBarras: TListBoxItem; GridPanelLayout5: TGridPanelLayout; Label1: TLabel; Label4: TLabel; cbHRI: TCheckBox; seBarrasLargura: TSpinBox; seBarrasAltura: TSpinBox; cbSuportaBMP: TCheckBox; lbBotoes: TListBoxItem; GridPanelLayout2: TGridPanelLayout; btLerConfig: TCornerButton; btSalvarConfig: TCornerButton; Layout1: TLayout; SpeedButton1: TSpeedButton; btnAtivar: TCornerButton; tabTeste: TTabItem; ToolBar2: TToolBar; lblTituloTestes: TLabel; btnBack: TSpeedButton; GridPanelLayout3: TGridPanelLayout; btnTiposLetra: TButton; btAlinhamento: TButton; btnBarras: TButton; btQRCode: TButton; btAcentos: TButton; btnLerStatus: TButton; btnLerInfo: TButton; btBeep: TButton; btnAbrirGaveta: TButton; btnCortarPapel: TButton; mImp: TMemo; GridPanelLayout4: TGridPanelLayout; btnImprimir: TCornerButton; btnLimpar: TCornerButton; StyleBook1: TStyleBook; GestureManager1: TGestureManager; ImageList1: TImageList; ACBrPosPrinter1: TACBrPosPrinter; procedure FormActivate(Sender: TObject); procedure btnProcurarBthClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure btnAtivarClick(Sender: TObject); procedure btnTiposLetraClick(Sender: TObject); procedure btnImprimirClick(Sender: TObject); private fsTemPermissao: Boolean; function PedirPermissoes: Boolean; function PedirPermissoes2: Boolean; procedure ConfigurarACBrPosPrinter; { Private declarations } public { Public declarations } end; var frmImpressora: TfrmImpressora; implementation {$R *.fmx} function TfrmImpressora.PedirPermissoes2: Boolean; var Ok: Boolean; LPermissions: TArray<String>; begin Ok := fsTemPermissao; if not Ok then begin if (TOSVersion.Major < 12) then begin SetLength(LPermissions, 2); LPermissions[0] := JStringToString(TJManifest_permission.JavaClass.BLUETOOTH); LPermissions[1] := JStringToString(TJManifest_permission.JavaClass.BLUETOOTH_ADMIN); end else begin SetLength(LPermissions, 3); LPermissions[0] := 'android.permission.BLUETOOTH_ADVERTISE'; LPermissions[1] := 'android.permission.BLUETOOTH_CONNECT'; LPermissions[2] := 'android.permission.BLUETOOTH_SCAN'; end; mImp.Lines.Add('4'); PermissionsService.RequestPermissions(LPermissions, procedure(const APermissions: TClassicStringDynArray; const AGrantResults: TClassicPermissionStatusDynArray) begin mImp.Lines.Add('5'); Ok := (Length(AGrantResults) = Length(LPermissions)); if Ok then begin for var GR in AGrantResults do begin if (GR <> TPermissionStatus.Granted) then begin Ok := False; Break; end; end; end; end, nil); end; fsTemPermissao := Ok; Result := Ok; end; function TfrmImpressora.PedirPermissoes: Boolean; begin Result := ACBrPosPrinter1.Device.PedirPermissoesBlueTooth; end; procedure TfrmImpressora.ConfigurarACBrPosPrinter; begin if not PedirPermissoes then exit; if rbClasseExterna.IsChecked then begin {if cbSmartPOS.IsChecked then begin fE1Printer.Modelo := TElginE1Printers.prnSmartPOS; fE1Lib.Modelo := TElginE1LibPrinters.prnSmartPOS; end else begin fE1Printer.Modelo := TElginE1Printers.prnM8; fE1Lib.Modelo := TElginE1LibPrinters.prnM8; end; case cbxModelo.ItemIndex of 0: ACBrPosPrinter1.ModeloExterno := fE1Printer; 1: ACBrPosPrinter1.ModeloExterno := fE1Lib; //2: ACBrPosPrinter1.ModeloExterno := fGEDIPrinter; else ACBrPosPrinter1.ModeloExterno := fSunmiPrinter; end; } cbxImpressorasBth.ItemIndex := cbxImpressorasBth.Items.IndexOf('NULL'); end else begin if Assigned(cbxModelo.Selected) then ACBrPosPrinter1.Modelo := TACBrPosPrinterModelo(cbxModelo.ItemIndex) else ACBrPosPrinter1.Modelo := ppTexto; if Assigned(cbxImpressorasBth.Selected) then ACBrPosPrinter1.Porta := cbxImpressorasBth.Selected.Text else if cbxImpressorasBth.ItemIndex = cbxImpressorasBth.Items.IndexOf('NULL') then cbxImpressorasBth.ItemIndex := -1; end; if Assigned(cbxPagCodigo.Selected) then ACBrPosPrinter1.PaginaDeCodigo := TACBrPosPaginaCodigo(cbxPagCodigo.ItemIndex); ACBrPosPrinter1.ColunasFonteNormal := Trunc(seColunas.Value); ACBrPosPrinter1.EspacoEntreLinhas := Trunc(seEspLinhas.Value); ACBrPosPrinter1.LinhasEntreCupons := Trunc(seLinhasPular.Value); ACBrPosPrinter1.ConfigLogo.KeyCode1 := 1; ACBrPosPrinter1.ConfigLogo.KeyCode2 := 0; ACBrPosPrinter1.ControlePorta := cbControlePorta.IsChecked; end; procedure TfrmImpressora.btnAtivarClick(Sender: TObject); begin ConfigurarACBrPosPrinter; ACBrPosPrinter1.Ativar; lblTituloTestes.Text := 'Testes em: '+ACBrPosPrinter1.Porta; mImp.Lines.Clear; tabsPrincipal.Next; end; procedure TfrmImpressora.btnImprimirClick(Sender: TObject); begin ACBrPosPrinter1.Buffer.Text := mImp.Lines.Text; ACBrPosPrinter1.Imprimir; // ACBrPosPrinter1.Imprimir(mImp.Lines.Text); end; procedure TfrmImpressora.btnProcurarBthClick(Sender: TObject); var sl: TStringList; begin if not PedirPermissoes then exit; cbxImpressorasBth.Items.Clear; try ACBrPosPrinter1.Device.AcharPortasBlueTooth( cbxImpressorasBth.Items, chbTodasBth.IsChecked ); cbxImpressorasBth.Items.Add('NULL'); except end; sl := TStringList.Create; try ACBrUtil.FilesIO.FindFiles('/dev/tty*', sl, True ); cbxImpressorasBth.Items.AddStrings(sl); finally sl.Free; end; end; procedure TfrmImpressora.btnTiposLetraClick(Sender: TObject); begin mImp.Lines.Clear; mImp.Lines.Add('</zera>'); mImp.Lines.Add('</linha_dupla>'); mImp.Lines.Add('FONTE NORMAL: '+IntToStr(ACBrPosPrinter1.ColunasFonteNormal)+' Colunas'); mImp.Lines.Add(LeftStr('....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8', ACBrPosPrinter1.ColunasFonteNormal)); mImp.Lines.Add('<e>EXPANDIDO: '+IntToStr(ACBrPosPrinter1.ColunasFonteExpandida)+' Colunas'); mImp.Lines.Add(LeftStr('....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8', ACBrPosPrinter1.ColunasFonteExpandida)); mImp.Lines.Add('</e><c>CONDENSADO: '+IntToStr(ACBrPosPrinter1.ColunasFonteCondensada)+' Colunas'); mImp.Lines.Add(LeftStr('....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8', ACBrPosPrinter1.ColunasFonteCondensada)); mImp.Lines.Add('</c><n>FONTE NEGRITO</N>'); mImp.Lines.Add('</corte_total>'); end; procedure TfrmImpressora.FormActivate(Sender: TObject); var PermissionBLUETOOTH : String; begin if not PedirPermissoes2() then begin mImp.Lines.Add('Sem permissão onActive'); end; ShowMessage('Versão 1.1'); end; procedure TfrmImpressora.FormCreate(Sender: TObject); var p: TACBrPosPaginaCodigo; begin cbxPagCodigo.Items.Clear ; For p := Low(TACBrPosPaginaCodigo) to High(TACBrPosPaginaCodigo) do cbxPagCodigo.Items.Add( GetEnumName(TypeInfo(TACBrPosPaginaCodigo), integer(p) ) ) ; end; end.
  18. Resolvido aqui senhores!
  19. johnbh3

    ACBRPostPrinter

    Ola Pessoal eu já tentei de tudo que vcs imanagem com Delphi alexandria. unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls, ACBrBase, ACBrPosPrinter, System.Permissions, {$IFDEF ANDROID} Androidapi.Helpers, Androidapi.JNI.JavaTypes, Androidapi.JNI.Os, FMX.ListBox, ACBrUtil.FilesIO, FMX.Memo.Types, FMX.ScrollBox, FMX.Memo {$ENDIF} ; type TfrmImpressora = class(TForm) Label1: TLabel; ACBrPosPrinter1: TACBrPosPrinter; cbxImpressorasBth: TComboBox; btnBuscarDispositivos: TButton; chbTodasBth: TCheckBox; Memo1: TMemo; procedure FormActivate(Sender: TObject); procedure btnBuscarDispositivosClick(Sender: TObject); private function PedirPermissoes: Boolean; { Private declarations } public { Public declarations } end; var frmImpressora: TfrmImpressora; implementation {$R *.fmx} function TfrmImpressora.PedirPermissoes: Boolean; begin Result := ACBrPosPrinter1.Device.PedirPermissoesBlueTooth; end; procedure TfrmImpressora.btnBuscarDispositivosClick(Sender: TObject); var sl: TStringList; begin Memo1.Lines.Clear; Memo1.Lines.Add('Iniciando...'); if not PedirPermissoes then begin Memo1.Lines.Add('Sem permissão : not PedirPermissoes'); exit; end else begin Memo1.Lines.Add('OK permissão : PedirPermissoes'); end; cbxImpressorasBth.Items.Clear; try Memo1.Lines.Add('Iniciando...[AcharPortasBlueTooth]'); ACBrPosPrinter1.Device.AcharPortasBlueTooth( cbxImpressorasBth.Items, chbTodasBth.IsChecked ); cbxImpressorasBth.Items.Add('NULL'); Memo1.Lines.Add('Finalzando...[FIM]'); except on E:Exception do Memo1.Lines.Add('AcharPortasBlueTooth...[ERRO] '+E.Message); end; Memo1.Lines.Add('Iniciando...[FilesIO]'); sl := TStringList.Create; try ACBrUtil.FilesIO.FindFiles('/dev/tty*', sl, True ); cbxImpressorasBth.Items.AddStrings(sl); finally Memo1.Lines.Add('Iniciando...[FilesIO]'); sl.Free; end; end; procedure TfrmImpressora.FormActivate(Sender: TObject); var PermissionBLUETOOTH : String; begin PedirPermissoes(); Label1.Text := '1.5'; PermissionBLUETOOTH := JStringToString(TJManifest_permission.JavaClass.BLUETOOTH); PermissionsService.RequestPermissions([PermissionBLUETOOTH], (nil)); PermissionBLUETOOTH := JStringToString(TJManifest_permission.JavaClass.BLUETOOTH_ADMIN); PermissionsService.RequestPermissions([PermissionBLUETOOTH], (nil)) end; end. No OnActive eu coloquei PermissionBLUETOOTH := JStringToString(TJManifest_permission.JavaClass.BLUETOOTH); PermissionsService.RequestPermissions([PermissionBLUETOOTH], (nil)); PermissionBLUETOOTH := JStringToString(TJManifest_permission.JavaClass.BLUETOOTH_ADMIN); PermissionsService.RequestPermissions([PermissionBLUETOOTH], (nil)) Mas era só teste ta. Na teoria o ACBR na parte de pedirPermissão faria isto. NA IDEI em todos ambientes de desenvolvimento marquei as duas opções de .BLUETOOTH. Testei também desmarcado. Fora do ACBR tentei tb este tutorial porém eu sei que e muito antigo https://github.com/adrianosantostreina/impressora-bluetooth Da erro external. Tudo que tento da errado. Nem o demo do Acbr da certo. Mesmo porque no meu exemplo iria fazer aos poucos. O codigo compartilhado acima e justamente do ACBR, e consiste incialmente somente em jogar os dispositivos no COMBO. Eu estou a 2 dias com isso e tudo que tenho não funciona. Ah no codigo acima eu coloquei um memo pra saber se deu certo permissão então aconteceu em if not PedirPermissoes then e que passa em function TACBrDeviceBlueTooth.PedirPermissoes: Boolean; tem directiva de {$IfDef DELPHI28_UP} normal ne? n e isso problema, na teoria isto era pra simplesmente funcionar e não funciona.
  20. johnbh3

    ACBrBal

    Ocorre que neste caso não posso instalar o Acbr! rs
  21. johnbh3

    ACBrBal

    Ola Pessoal Eu tava precisando so do ACBrBAL, isto não seria possivel de forma simples ne. Pq ele acaba dependendo de outras units. Alguém já teve necessidade deste tipo?
  22. Entrei no demo Quando vou compilar, quase na etapa final de gerar o APK da erro. [PAClient Error] Error: E7688 Unable to execute '"C:\Program Files\Java\jdk1.8.0_60\bin\java.exe" -cp "c:\program files (x86)\embarcadero\studio\22.0\bin\Android\r8-3.3.28.jar" com.android.tools.r8.D8 --release --min-api 23 --output "C:\Delphi\ACbr\Exemplos\ACBrSerial\ACBrPosPrinter\Android\Android64\Release\ACBrPosPrinterAndroid.classes" @"C:\Delphi\ACbr\Exemplos\ACBrSerial\ACBrPosPrinter\Android\Android64\Release\dex_list.txt"' (Error 1) [PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\22.0\lib\android\Release\android-support-v4.dex.jar: [PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\22.0\lib\android\Release\android-support-v4.dex.jar [PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\22.0\lib\android\Release\com-google-android-gms.play-services-ads-base.17.2.0.dex.jar: [PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\22.0\lib\android\Release\com-google-android-gms.play-services-ads-base.17.2.0.dex.jar Se eu crio aplicativo novo não da o erro. Certamente porque o demo foi feito em outro SDK algo assim ne. Sabem o que preciso ajusar?
  23. Então mas eu penso em fazer back mesmo. Mas a parte de pagamento posso chamar do próprio equipamento ? Este equipamento é frágil? "Ligeiramente fragil" nunca vi ele em lugar algum em em.lojas de bh
×
×
  • 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.

The popup will be closed in 10 segundos...