Oi Daniel,
segundo sua dica eu fiz algo como:
procedure TfrmPrincipal.ACBrTEFD1CliSiTefObtemCampo(Titulo: string;
TamanhoMinimo, TamanhoMaximo, TipoCampo: Integer;
Operacao: TACBrTEFDCliSiTefOperacaoCampo; var Resposta: AnsiString;
var Digitado, VoltarMenu: Boolean);
....
....
function no_parcelas_cartao:integer;
var total:currency;
begin
total:=totaliza();
if total<=100 then result:=1
else if ((total>100) and (total<=500)) then result:=3
else if ((total>501) and (total<=1000)) then result:=4
else if (total>1000) then result:=6
else result:=1
end;
case TipoCampo of
500:
begin // esconde solicitação de Senha do Supervisor para Transação TEF
Digitado := true; // TMinhaTelaSolicitacaoPersonalizada.Autoriza();
VoltarMenu := false;
Resposta := '';
end;
504: // Esconde Taxas de Servico e Taxa de Embarque
begin
PerguntaCampo := (ACBrTEFD1.TEFCliSiTef.Tag > 0);
if not PerguntaCampo then
begin
Digitado := true;
VoltarMenu := false;
Resposta := '0,00';
end
end;
505:
begin // Preenche o no de parcelas do cartão
AForm.ValorMinimo:=1;
AForm.ValorMaximo:=no_parcelas_cartao;
AForm.Edit1.Text:='1';
if (no_parcelas_cartao>1) then begin
MR := AForm.ShowModal;
Digitado := (MR = mrOK);
VoltarMenu := false;
Resposta := AForm.Edit1.Text;//'3';
end else begin //nao precisa mostrar dialogo- só 1 parcela
Digitado := true;
VoltarMenu := false;
Resposta := '1';
end
end;
else
begin
MR := AForm.ShowModal;
Digitado := (MR = mrOK);
VoltarMenu := (MR = mrRetry);
if Digitado then
Resposta := AForm.Edit1.Text;
end;
end;
Uma dúvida. Não tenho pinpad ainda. Comprei mas não recebi até o momento.
Minha pergunta é se fazendo assim e usando pinpad, o no. de parcelas vai aparecer no pinpad.
Sem pinpad, eu abro o form e checo se o número de parcelas está dentro da politica de preços do cliente, antes dele fechar o form.
Quando usando pinpad comporta-se de que forma?