-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfrmCarregamento.cs
98 lines (88 loc) · 3.62 KB
/
frmCarregamento.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
using NSOCR;
using Ocr.Enums;
using Ocr.Enums;
using Ocr.MetodosExtensao;
using System;
using System.Diagnostics;
using System.Reflection;
using System.Windows.Forms;
namespace Ocr
{
public partial class frmCarregamento : Form
{
public frmCarregamento()
{
InitializeComponent();
}
public frmInicial frmInicial;
public int intResultadoErro;
public int intModoCarregamento;
private readonly FileVersionInfo file = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location);
private bool ChecarConclusao()
{
if (intModoCarregamento == 0)
intResultadoErro = TNSOCR.clsNsOCR.Img_OCR(TNSOCR.intObjImagem, 0, 0, (int)TiposFlagsOCR.OCRFLAG_GETRESULT);
else
intResultadoErro = TNSOCR.clsNsOCR.Ocr_ProcessPages(TNSOCR.intObjImagem, 0, 0, 0, 0, (int)TiposFlagsOCR.OCRFLAG_GETRESULT);
return intResultadoErro != (int)TiposErrosOCR.ERROR_PENDING;
}
private void CarregarFormulario(object sender, EventArgs e)
{
timer.Enabled = true;
progressBar.Value = 0;
}
private void Timer(object sender, EventArgs e)
{
try
{
if (ChecarConclusao())
Close();
int intPercCarregamento;
if (intModoCarregamento == (int)TiposModosCarregamentoOCR.arquivo)
intPercCarregamento = TNSOCR.clsNsOCR.Img_OCR(TNSOCR.intObjImagem, 0, 0, (int)TiposFlagsOCR.OCRFLAG_GETPROGRESS);
else
intPercCarregamento = TNSOCR.clsNsOCR.Ocr_ProcessPages(TNSOCR.intObjImagem, 0, 0, 0, 0, (int)TiposFlagsOCR.OCRFLAG_GETPROGRESS);
if (intPercCarregamento < (int)TiposErrosOCR.ERROR_FIRST)
if (progressBar.Value != intPercCarregamento)
progressBar.Value = intPercCarregamento;
}
catch (Exception ex)
{
MessageBox.Show(ex.TratamentoDeExcecoes(), file.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void Cancelar(object sender, EventArgs e)
{
try
{
//Cancelar o trabalho
if (intModoCarregamento == (int)TiposModosCarregamentoOCR.arquivo)
TNSOCR.clsNsOCR.Img_OCR(TNSOCR.intObjImagem, 0, 0, (int)TiposFlagsOCR.OCRFLAG_CANCEL);
else
TNSOCR.clsNsOCR.Ocr_ProcessPages(TNSOCR.intObjImagem, 0, 0, 0, 0, (int)TiposFlagsOCR.OCRFLAG_CANCEL);
// precisamos aguardar o resultado de qualquer maneira, já que a solicitação OCRFLAG_CANCEL retorna imediatamente, o trabalho ainda não foi interrompido
}
catch (Exception ex)
{
MessageBox.Show(ex.TratamentoDeExcecoes(), file.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
Close(); //Essa Função espera pelo resultado
}
}
private void FecharFormulario(object sender, FormClosedEventArgs e)
{
try
{
timer.Enabled = false;
while (!ChecarConclusao()) //Verifica se a recognição foi finalizada
System.Threading.Thread.Sleep(10); //Aguarda enquanto outra thread continua
}
catch (Exception ex)
{
MessageBox.Show(ex.TratamentoDeExcecoes(), file.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}