MSGBOX COM TIMER
Olá amigos !
Com certeza que preciso é bem simples porém estou apanhando e não encontrei nada que me ajudasse. Que preciso é ir executando comando timer enquanto faço um processo.
Exemplo
Criei objeto timer com interval 1000 e enabled = False
Quero por exemplo que um label fica piscando, testei até com msgbox conforme abaixo
timer1.enabled = true
If MsgBox([Ô]CONFIRMA?[Ô], vbQuestion + vbYesNo, [Ô]TESTE) = vbYes Then
Ele só entra no timer após eu responder a mensagem, já usei o doevents em vários lugares e não funciona
Com certeza que preciso é bem simples porém estou apanhando e não encontrei nada que me ajudasse. Que preciso é ir executando comando timer enquanto faço um processo.
Exemplo
Criei objeto timer com interval 1000 e enabled = False
Quero por exemplo que um label fica piscando, testei até com msgbox conforme abaixo
timer1.enabled = true
If MsgBox([Ô]CONFIRMA?[Ô], vbQuestion + vbYesNo, [Ô]TESTE) = vbYes Then
Ele só entra no timer após eu responder a mensagem, já usei o doevents em vários lugares e não funciona
Possivel? Sim.
Mas bem complicado, já que o MSGBOX suspende a execução do programa principal.
Então, tu tem as seguintes opções:
-Usar um MSGBOX próprio (custom)
-Criar um TIMER usando API do Windows
A solução mais [Ô]fácil[Ô] é a segunda.
Dá uma olhada em: http://www.developerfusion.com/code/141/close-a-message-box-automatically/
Mas bem complicado, já que o MSGBOX suspende a execução do programa principal.
Então, tu tem as seguintes opções:
-Usar um MSGBOX próprio (custom)
-Criar um TIMER usando API do Windows
A solução mais [Ô]fácil[Ô] é a segunda.
Dá uma olhada em: http://www.developerfusion.com/code/141/close-a-message-box-automatically/
O Colega ASHKATCHUP deu o caminho possÃvel, mas indicou a segunda saÃda.
Eu, particularmente, optaria pela primeira. Seria assim: Em um formulário tem uma TextBox e nela se coloca a mensagem a ser exibida. Os botões Sim e Não inserem em uma variável Global booleana o conteúdo True (Sim) ou False (quando clica no Não). No formulário de mensagem tem um timer com o seguinte código:
Fiz até uma função que recebe como parâmetro o texto da mensagem e faz o seguinte:
Em um módulo coloca um código como este:
No formulário tem 2 botões, sendo Sim e Não, cada um com o seguinte código
No caso do botão Sim (quando ele é clicado)
No caso do botão Não (quando ele é clicado)
Bastaria chamar com algo assim:
Eu, particularmente, optaria pela primeira. Seria assim: Em um formulário tem uma TextBox e nela se coloca a mensagem a ser exibida. Os botões Sim e Não inserem em uma variável Global booleana o conteúdo True (Sim) ou False (quando clica no Não). No formulário de mensagem tem um timer com o seguinte código:
Text1.Visible = not Text1.Visible
Fiz até uma função que recebe como parâmetro o texto da mensagem e faz o seguinte:
Em um módulo coloca um código como este:
Public blnSim as Boolean
Public Function ExibirMensagem (strMensagem as String, blnPiscarMensagem as Boolean) as Integer
Load frmMensagem
frmMensagem.Text1.Text = strMensagem
frmMensagem.Timer1.Enabled = blnPiscarMensagem
frmMensagem.Show vbModal
if blnSim = True then ExibirMensagem = vbYes else ExibirMensagem = vbNo
End Function
No formulário tem 2 botões, sendo Sim e Não, cada um com o seguinte código
No caso do botão Sim (quando ele é clicado)
blnSim = True
No caso do botão Não (quando ele é clicado)
blnSim = False
Bastaria chamar com algo assim:
dim intMsg as Integer
[ô]Na variável intMsg retornará vbYes ou vbNo
intMsg = ExibirMensagem([Ô]Você está vendo um texto piscante e poderá clicar em Sim ou Não[Ô], True)
A tua alternativa também é muito boa, colega ZEUZEBIO3!!
mais simples ainda é usar uma messagebox não modal, usando api do windows, veja
faça ai o teste, eu não testei aqui mas acredito que vai funcionar
[ô]no General do form
Private Declare Function MessageBox Lib [Ô]user32[Ô] Alias [Ô]MessageBoxA[Ô] (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long
Private Const MB_OKCANCEL As Long = &H1
[ô]para chamar a messagebox
Private Sub Command1_Click()
Dim ret As Variant
ret = MessageBox(0, [Ô]Esta é uma messagebox não modal[Ô], [Ô]Messagebox não modal[Ô], MB_OKCANCEL)
End Sub
faça ai o teste, eu não testei aqui mas acredito que vai funcionar
esqueci de informar o resto, se funcionar o código acima vc pode usar as seguintes função
Os botões que aparecem no formulário são definidos pela variável MB_OKCANCEL , podemos usar também as seguintes:
MB_ABORTRETRYIGNORE - Define três botões : Abort, Retry, e Ignore.
MB_OK - Define somente um botão : OK. (este é o padrão)
MB_RETRYCANCEL - Define dois botões : Retry and Cancel.
MB_YESNO - Define dois botões - : Yes and No.
MB_YESNOCANCEL - Define três botões : Yes, No, and Cancel.
Se quiser definir um Ãcone na caixa de mensagem basta usar uma das seguintes contantes :
MB_ICONEXCLAMATION,MB_ICONWARNING - Exibe um Ãcon com de uma exclamação.
MB_ICONINFORMATION, MB_ICONASTERISK - Exibe um Ãcone com a letra i em um cÃrculo.
MB_ICONQUESTION -Exibe um Ãcone de interrogação.
MB_ICONSTOP,MB_ICONERROR,MB_ICONHAND - Exibe um icone de Stop
Para definir qual é o botão padrão temos as seguintes constantes :
MB_DEFBUTTON1 - Define o primeiro botão como padrão.
MB_DEFBUTTON2 - Define o segundo botão como padrão.
MB_DEFBUTTON3 - Define o terceiro botão como padrão.
MB_DEFBUTTON4 - Define o quarto botão como padrão.
Os botões que aparecem no formulário são definidos pela variável MB_OKCANCEL , podemos usar também as seguintes:
MB_ABORTRETRYIGNORE - Define três botões : Abort, Retry, e Ignore.
MB_OK - Define somente um botão : OK. (este é o padrão)
MB_RETRYCANCEL - Define dois botões : Retry and Cancel.
MB_YESNO - Define dois botões - : Yes and No.
MB_YESNOCANCEL - Define três botões : Yes, No, and Cancel.
Se quiser definir um Ãcone na caixa de mensagem basta usar uma das seguintes contantes :
MB_ICONEXCLAMATION,MB_ICONWARNING - Exibe um Ãcon com de uma exclamação.
MB_ICONINFORMATION, MB_ICONASTERISK - Exibe um Ãcone com a letra i em um cÃrculo.
MB_ICONQUESTION -Exibe um Ãcone de interrogação.
MB_ICONSTOP,MB_ICONERROR,MB_ICONHAND - Exibe um icone de Stop
Para definir qual é o botão padrão temos as seguintes constantes :
MB_DEFBUTTON1 - Define o primeiro botão como padrão.
MB_DEFBUTTON2 - Define o segundo botão como padrão.
MB_DEFBUTTON3 - Define o terceiro botão como padrão.
MB_DEFBUTTON4 - Define o quarto botão como padrão.
Tópico encerrado , respostas não são mais permitidas