Página 1 de 1
Botao para cancelar processamento
Enviado: 01 Jun 2015 09:01
por rubens
Olá...
Tenho uma função que varre um dbf. Tem como colocar um botão para cancelar esse processamento?
No clipper/harbour faço assim
Código: Selecionar todos
Use clientes
DbGoTop()
While !eof()
If LastKey()=27
If Alert('Deseja cancelar processamento?',{'Sim','Nao'})=1
Exit
EndIf
Endif
? Nome
DbSkip()
EndDo
...
Return Nil
Como ficaria na minigui? Imagino que um on key escape no formulário resolveria, mas teria como criar um botão para isso ?
Obrigado
Rubens
Botao para cancelar processamento
Enviado: 01 Jun 2015 14:14
por Toledo
Amigo, segue um exemplo:
Código: Selecionar todos
#include "minigui.ch"
Memvar lPara
*------------------------
Function main()
*------------------------
Public lPara:=.F.
if !file('democli.dbf')
aStru := {;
{'CODIGO','C',3,00},;
{"NOME" ,"C",40,00}}
DBCREATE( 'democli.dbf' , aStru)
Endif
use democli
for x=1 to 30
append blank
REPLACE CODIGO WITH STRZERO(X,3)
REPLACE NOME WITH 'CLIENTE '+STRZERO(X,3)
COMMIT
next
DbGoTop()
DEFINE WINDOW FMain AT 10,10 ;
WIDTH 550 HEIGHT 185 MAIN ;
TITLE "Demo Parar Processamento" ;
NOMAXIMIZE NOSIZE
@ 10,20 BUTTON Button_1 CAPTION "Iniciar Processamento" WIDTH 150 HEIGHT 28;
ACTION {|| Iniciar_proc()}
@ 40,10 FRAME Frame_1 CAPTION 'Cliente' WIDTH 519 HEIGHT 61
@ 63,20 LABEL oNome VALUE "" WIDTH 490 HEIGHT 24 ;
FONT "ARIAL" SIZE 10 BOLD
@ 110,350 BUTTON Button_2 CAPTION "Parar o Processamento" WIDTH 160 HEIGHT 28;
ACTION {|| (lPara:=.T.)}
END WINDOW
FMain.Button_1.Enabled:=.t.
FMain.Button_2.Enabled:=.f.
FMain.Center
FMain.Activate
CLOSE ALL
Return Nil
*-----------------------
Function Iniciar_proc()
*-----------------------
lPara:=.F.
FMain.Button_1.Enabled:=.f.
FMain.Button_2.Enabled:=.t.
DbGoTop()
Do While !eof()
do EVENTS
If lPara
lPara:=.F.
If MsgYesNo('Deseja parar o processamento?')
FMain.oNome.Value:="Processamento encerrado..."
Exit
EndIf
Endif
FMain.oNome.Value:=Nome
inkey(0.25)
DbSkip()
If eof()
DbGoTop()
Endif
EndDo
FMain.Button_1.Enabled:=.t.
FMain.Button_2.Enabled:=.f.
Return NIL
Abraços,
Botao para cancelar processamento
Enviado: 01 Jun 2015 15:28
por rubens
Ok... Toledo...
Obg... através das pesquisas tinha visto um colega sugerir a criação de uma variável mas não tinha conseguido visualizar como. Agora sim ficou claro..
Obrigado..
Rubens