Jump to content

dev botao

  • Este tópico foi criado há 374 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Posted

Boa tarde.

Na fase final de configuração, e conforme o manual do Sitef, quando apresentado o QrCode para PIX, deve haver a possibilidade de cancelar o QrCode, por desistência do cliente por exemplo.

No Evento QuandoExibirQRCode já inseri a criação do form que mostrará o QrCode, só não consigo fazer com o que o foco fique nele pra que eu possa clicar num botão de cancelamento da operação.

procedure TfMenu.TEFAPIQuandoExibirQRCode(const DadosQRCode: String);
var
   QRCode: TDelphiZXingQRCode;
   QRCodeBitmap: TBitmap;
   Row, Column: Integer;
begin
   if DadosQRCode <> '' then begin
      if not FormExiste(fTEFExibeQrCode) then
         Application.CreateForm(TfTEFExibeQrCode, fTEFExibeQrCode);
   end else begin
      if FormExiste(fTEFExibeQrCode) then
         FechaForm(fTEFExibeQrCode);
      Exit;
   end;

   QRCode       := TDelphiZXingQRCode.Create;
   QRCodeBitmap := TBitmap.Create;
   try
      QRCode.Encoding      := qrUTF8BOM;
      QRCode.QuietZone     := 2;
      QRCode.Data          := widestring(DadosQRCode);

      QRCodeBitmap.Width   := QRCode.Columns;
      QRCodeBitmap.Height  := QRCode.Rows;

      for Row := 0 to QRCode.Rows - 1 do begin
         for Column := 0 to QRCode.Columns - 1 do begin
            if (QRCode.IsBlack[Row, Column]) then
               QRCodeBitmap.Canvas.Pixels[Column, Row] := clBlack
            else
               QRCodeBitmap.Canvas.Pixels[Column, Row] := clWhite;
         end;
      end;

      with fTEFExibeQrCode do begin
         prog.Max := LConfTerm('TEFPIX_SLEEP',5);
         if prog.max = 0 then
            prog.max := 300000;
         imgQRCode.Picture.Bitmap.Assign(QRCodeBitmap);
         Timer1.Enabled := True;
         Show;
         Refresh;
      end;

      //Sleep(LConfTerm('TEFPIX_SLEEP',5));
   finally
      QRCode.Free;
      QRCodeBitmap.Free;
   end;
end;

Obs: Inseri um timer e um progressBar no form criado pra mostrar o andamento do tempo para efetuar o PIX.

 

No form criado, inseri um botão Setando uma variavel global para "iCanceladoPeloOperador := TRue;"

procedure TfTEFExibeQrCode.BotaoFecharClick(Sender: TObject);
begin
   fMenu.iCanceladoPeloOperador := TRue;
   Close;
end;

 

E no evento QuandoEsperarOperacao verifico essa variavel global:

procedure TfMenu.TEFAPIQuandoEsperarOperacao(
  OperacaoAPI: TACBrTEFAPIOperacaoAPI; var Cancelar: Boolean);
begin
  if iCanceladoPeloOperador then begin
     iCanceladoPeloOperador := False;
     Cancelar := True;
  end;
end;

 

 

 

 

  • Fundadores
Posted

O ideal seria não usar um Form ShowModal... esse tipo de formulário costuma bloquear a execução da aplicação...

Mas o que exatamente não funciona ?

O Botão não fecha o Form ?

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.

  • Moderadores
Posted
15 horas atrás, Mario Inacio disse:

Boa tarde.

Na fase final de configuração, e conforme o manual do Sitef, quando apresentado o QrCode para PIX, deve haver a possibilidade de cancelar o QrCode, por desistência do cliente por exemplo.

No Evento QuandoExibirQRCode já inseri a criação do form que mostrará o QrCode, só não consigo fazer com o que o foco fique nele pra que eu possa clicar num botão de cancelamento da operação.

procedure TfMenu.TEFAPIQuandoExibirQRCode(const DadosQRCode: String);
var
   QRCode: TDelphiZXingQRCode;
   QRCodeBitmap: TBitmap;
   Row, Column: Integer;
begin
   if DadosQRCode <> '' then begin
      if not FormExiste(fTEFExibeQrCode) then
         Application.CreateForm(TfTEFExibeQrCode, fTEFExibeQrCode);
   end else begin
      if FormExiste(fTEFExibeQrCode) then
         FechaForm(fTEFExibeQrCode);
      Exit;
   end;

   QRCode       := TDelphiZXingQRCode.Create;
   QRCodeBitmap := TBitmap.Create;
   try
      QRCode.Encoding      := qrUTF8BOM;
      QRCode.QuietZone     := 2;
      QRCode.Data          := widestring(DadosQRCode);

      QRCodeBitmap.Width   := QRCode.Columns;
      QRCodeBitmap.Height  := QRCode.Rows;

      for Row := 0 to QRCode.Rows - 1 do begin
         for Column := 0 to QRCode.Columns - 1 do begin
            if (QRCode.IsBlack[Row, Column]) then
               QRCodeBitmap.Canvas.Pixels[Column, Row] := clBlack
            else
               QRCodeBitmap.Canvas.Pixels[Column, Row] := clWhite;
         end;
      end;

      with fTEFExibeQrCode do begin
         prog.Max := LConfTerm('TEFPIX_SLEEP',5);
         if prog.max = 0 then
            prog.max := 300000;
         imgQRCode.Picture.Bitmap.Assign(QRCodeBitmap);
         Timer1.Enabled := True;
         Show;
         Refresh;
      end;

      //Sleep(LConfTerm('TEFPIX_SLEEP',5));
   finally
      QRCode.Free;
      QRCodeBitmap.Free;
   end;
end;

Obs: Inseri um timer e um progressBar no form criado pra mostrar o andamento do tempo para efetuar o PIX.

 

No form criado, inseri um botão Setando uma variavel global para "iCanceladoPeloOperador := TRue;"

procedure TfTEFExibeQrCode.BotaoFecharClick(Sender: TObject);
begin
   fMenu.iCanceladoPeloOperador := TRue;
   Close;
end;

 

E no evento QuandoEsperarOperacao verifico essa variavel global:

procedure TfMenu.TEFAPIQuandoEsperarOperacao(
  OperacaoAPI: TACBrTEFAPIOperacaoAPI; var Cancelar: Boolean);
begin
  if iCanceladoPeloOperador then begin
     iCanceladoPeloOperador := False;
     Cancelar := True;
  end;
end;

 

 

 

 

faz ele vir pra frente se ele já está criado ou mesmo após a criação e exibição

bringtofront acho que é esse o comando no form

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Membros Pro
Posted

Bom dia.

Na verdade vou ver como se comporta na homologação, pois o Sitef Demo não pára pra pagamento do QrCode, ele mostra e já autoriza.

Pra contornar, e apresentar o QRcode, o suporte da Software Express sugerir colocar um Sleep após apresentar, e é isso que está causando o travamento com certeza.

Vou fazer a homologação e qualquer retorno e abro um novo ticket.

Podem fechar esse.

Obrigado

  • Consultores
Posted

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

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

 

 

  • Moderadores
Posted
9 minutos atrás, Mario Inacio disse:

Bom dia.

Na verdade vou ver como se comporta na homologação, pois o Sitef Demo não pára pra pagamento do QrCode, ele mostra e já autoriza.

Pra contornar, e apresentar o QRcode, o suporte da Software Express sugerir colocar um Sleep após apresentar, e é isso que está causando o travamento com certeza.

Vou fazer a homologação e qualquer retorno e abro um novo ticket.

Podem fechar esse.

Obrigado

Não é só ele. Paygo também.

tudo é aprovado. tu só vai conseguir testar isso em produção em ambos as soluções

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Este tópico foi criado há 374 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

The popup will be closed in 10 seconds...