CHAMAR SUB OU FUNCTION TIPO "MODAL"

MARCELO.VB.PIRA 09/01/2005 12:36:08
#59560
como faço para chamar uma sub ou função e o sistema esperar pelo termino desta funcao ou sub para poder continuar???
USUARIO.EXCLUIDOS 09/01/2005 17:18:26
#59599
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.
MARCELO.VB.PIRA 09/01/2005 17:59:58
#59610
beleza... e como faz isso???

:)))))))))

WEBMASTER 09/01/2005 19:48:32
#59653
Resposta escolhida
Ora, muito simples, vou fazer um pequeno exemplo, aqui e agora :

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 ! ;)
MARCELO.VB.PIRA 09/01/2005 19:57:45
#59656
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???
WEBMASTER 09/01/2005 20:09:47
#59661
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
WEBMASTER 09/01/2005 20:38:21
#59666
P.S.:

Claro que você pode ter mais argumentos que somente o Frm as Form na função...mas esse foi só um exemplo ;)
IVOFABIANO 09/01/2005 21:37:45
#59674
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.
USUARIO.EXCLUIDOS 09/01/2005 22:34:55
#59678
Não é necessário fazer a liberação do Form dentro da sub ou função.

Ex:

Private Sub CmdImprimir_Click()
Me.Enabled=false
Imprimir_relatorio 'Chamada da função
Me.Enabled=true
End Sub
WEBMASTER 09/01/2005 22:53:01
#59684
eh, eu sei, mas deste modo temos certeza que vai liberar somente depois de imprimir!! ;)
MARCELO.VB.PIRA 09/01/2005 23:27:06
#59688
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...

Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas