procedure TfrmPrincipal.btnImprimeDacteClick(Sender: TObject); var x: integer; begin Screen.cursor:=crAppStart; btnImprimeDacte.Enabled:=false; EditStatus.Text:='Gerando DACTE, aguarde...'; Panel2.Refresh; {pode-se passar o path do xml assinado diretamente no parametro se passar o parametro string vazio o sistema ira solicitar o arquivo, ex: ImprimeDanfe('',3); } for x:=1 to StrToInt(EditQtdDanfe.Text) do ImprimeDacte(EditPathDanfe.text, EditPathPDF.Text, (rdgOpcoesDanfe.ItemIndex+1), 'Minha OBS de teste.'); //EditPathPDF.text: se estiver = '', a dll irá exibir um formulario solicitando o local e arquivo para salvar o PDF. EditStatus.Text:='DACTE Gerado.'; btnImprimeDacte.Enabled:=true; Screen.cursor:=crDefault end;