Problemas com Try / Exception
Caros amigos, gostaria da ajuda de vocês para resolver um problema que creio ser simples, mas devido a minha falta de experiência com esta linguagem, está me deixando doido!!!
Bom seguinte: Tenho uma rotina que efetua a copia de registros de um arquivo para outro (Registro a registro) e eu abro um form com uma barra de progresso que vai apresentando ao usuário o andamento da cópia. O problemas é que eu gostaria de colocar um botão cancelar neste form com a barra de progresso e chamar uma exceção que irá cancelar todo o processo. Bom para ilustrar melhor, abaixo coloco mais ou menos como está;
//************************************************************
//* PRINCIPAL
FrmPrincipal
uses FrmBarra
var Cancelado : boolean; // Criei essa variavel para indicar quando for cancelado pelo usuário
Function Processaxyz()
begin
Try
Cancelado := false;
(Começa o processo...)
(Crio o formulário que irá apresentar a barra de progresso)
while (condicao)
(vou copiando registro a registro)
(Vou atualizando a barra de progresso: FrmBarra.Progressbar.stepit;)
Application.processmessages;
Fecha condicao While()
Except
(Fecha o arquivo)
if Cancelado = true then
(Exibe mensagem de erro ao usuário)
;
end;
//***********************************************************
FrmBarra
uses FrmPrinc
BotaoCancelar.Onclick(...)
begin
If Mensagem(..) == MrYes then
begin
FrmPrinc.Cancelado := false;
Abort; // Mesmo assim, no FrmPrinc, o processo continua sem ir para
exit; // o except.
end;
Obrigado,
Fabio Souza.
Bom seguinte: Tenho uma rotina que efetua a copia de registros de um arquivo para outro (Registro a registro) e eu abro um form com uma barra de progresso que vai apresentando ao usuário o andamento da cópia. O problemas é que eu gostaria de colocar um botão cancelar neste form com a barra de progresso e chamar uma exceção que irá cancelar todo o processo. Bom para ilustrar melhor, abaixo coloco mais ou menos como está;
//************************************************************
//* PRINCIPAL
FrmPrincipal
uses FrmBarra
var Cancelado : boolean; // Criei essa variavel para indicar quando for cancelado pelo usuário
Function Processaxyz()
begin
Try
Cancelado := false;
(Começa o processo...)
(Crio o formulário que irá apresentar a barra de progresso)
while (condicao)
(vou copiando registro a registro)
(Vou atualizando a barra de progresso: FrmBarra.Progressbar.stepit;)
Application.processmessages;
Fecha condicao While()
Except
(Fecha o arquivo)
if Cancelado = true then
(Exibe mensagem de erro ao usuário)
;
end;
//***********************************************************
FrmBarra
uses FrmPrinc
BotaoCancelar.Onclick(...)
begin
If Mensagem(..) == MrYes then
begin
FrmPrinc.Cancelado := false;
Abort; // Mesmo assim, no FrmPrinc, o processo continua sem ir para
exit; // o except.
end;
Obrigado,
Fabio Souza.
Souza.fo
Curtidas 0