CHAMAR SUB OU FUNCTION TIPO "MODAL"
como faço para chamar uma sub ou função e o sistema esperar pelo termino desta funcao ou sub para poder continuar???
Ja vi um código para isso. Mas vc pode fazer isso via Interface.
A chamada da sub ou função seria a partir de um evento, então antes da chamada bloqueie toda a interface do programa e só libere depois da linha da chamada da sub ou função.
A chamada da sub ou função seria a partir de um evento, então antes da chamada bloqueie toda a interface do programa e só libere depois da linha da chamada da sub ou função.
beleza... e como faz isso???
:)))))))))
:)))))))))
Ora, muito simples, vou fazer um pequeno exemplo, aqui e agora :
este pequeno exemplo cria um contador que conta do 0 ateh o 100, quando chegar ao 100, ou passar do mesmo, o form é habilitado ! ;)
Citação:
private sub form_load()
dim x as integer
me.enabled=false
for x= 0 to 100
x=x+1
if(x>=100)then me.enabled=true:exit for
next
end sub
este pequeno exemplo cria um contador que conta do 0 ateh o 100, quando chegar ao 100, ou passar do mesmo, o form é habilitado ! ;)
beleza... mas imagine a situação:
eu tenho q chamar uma funcao para uma impresao... mas o form onde estou não pode continuar a execucao do sistema ate a funcao que está em um modulo ser concluida...
teria alguma forma???
eu tenho q chamar uma funcao para uma impresao... mas o form onde estou não pode continuar a execucao do sistema ate a funcao que está em um modulo ser concluida...
teria alguma forma???
teria sim...vou explicar:
quando for chamar a função faz assim:
supondo que for chama-la por um command button :
call imprimiragora(me)
me.enabled=false
ai a função você cria assim :
public function ImprimeAgora(Frm as form)
'''''procedimentos de impressão
'agora, no final:
Frm.enabled=true
end function
quando for chamar a função faz assim:
supondo que for chama-la por um command button :
call imprimiragora(me)
me.enabled=false
ai a função você cria assim :
public function ImprimeAgora(Frm as form)
'''''procedimentos de impressão
'agora, no final:
Frm.enabled=true
end function
P.S.:
Claro que você pode ter mais argumentos que somente o Frm as Form na função...mas esse foi só um exemplo ;)
Claro que você pode ter mais argumentos que somente o Frm as Form na função...mas esse foi só um exemplo ;)
uma outra opção (talvez mais para aumentar a gama de possibilidades) seria vc criar um exe a parte que recebesse os parà ¢metros e valores para a impressão. A partir da sua aplicação vc o chamaria com SHELL WAIT e com a passagem de valores. A sua aplicação esperaria o exe acabar as suas tarefas e somente então continuaria.
Ex.:
Call ShellWait(App.Path & "\IMPRESSORa.exe")
Abs.
Ex.:
Call ShellWait(App.Path & "\IMPRESSORa.exe")
Abs.
Não é necessário fazer a liberação do Form dentro da sub ou função.
Ex:
Ex:
Private Sub CmdImprimir_Click()
Me.Enabled=false
Imprimir_relatorio 'Chamada da função
Me.Enabled=true
End Sub
eh, eu sei, mas deste modo temos certeza que vai liberar somente depois de imprimir!! ;)
valeu as dicas!!!! acabei usando um pouco de cada:
chamo um outro form em modal
lá, escolho qual o tipo de impressao (80 colunas, mni impressora, 132, ect)
quando saio deste form, o sistema continua...
:)
mas a dica do ME.ENABLED=false... esta eu vou pesquisar melhor... tenho um milhao de opcoes de uso para ela...
valeu todo mundo!!!!
brigadao...
chamo um outro form em modal
lá, escolho qual o tipo de impressao (80 colunas, mni impressora, 132, ect)
quando saio deste form, o sistema continua...
:)
mas a dica do ME.ENABLED=false... esta eu vou pesquisar melhor... tenho um milhao de opcoes de uso para ela...
valeu todo mundo!!!!
brigadao...
Tópico encerrado , respostas não são mais permitidas