RESTAURANDO TELA DO MEU SISTEMA MINIMIZADA

NEGRON 02/03/2013 13:14:11
#419815
Bom dia galera!!!!!!!!

Galera é o seguinte. Tenho um sistema de controle de atendimentos onde observei que as vezes o usuario consegue executar 2 cópias do sistema ou mais.

Procurei uma rotina na net que evita isto é o códio abaixo:

   
[txt-color=#0000f0]
If App.PrevInstance = True Then
MsgBox [Ô]O Sistema já encontra-se aberto!!!![Ô], vbInformation, [Ô]Tarifa Social[Ô]
Exit Sub
End
endif
[/txt-color]

Até aqui tudo ok.

agora minha dúvida é como faço para que quando o usuário tentar abrir uma segunda cópia do sistema, ele seja informado que já existe uma cópia aberta e a mesma seja restaurada/maximizada na tela vejam o código abaixo:

   
[txt-color=#0000f0]
If App.PrevInstance = True Then
MsgBox [Ô]O Sistema já encontra-se aberto!!!![Ô], vbInformation, [Ô]Tarifa Residencial Social[Ô]
Form1.WindowState = 2
End If
[/txt-color]

Com esse código ele não restaura a tela ele abre ela novamente..... ficando 2 cópias

alguem poderia me dar uma luz....


PROFESSOR 08/03/2013 23:49:44
#420210
Simples.

Form1, provavelmente, é o nome real do formulário em tempo de desenho. Assim, ao chamar esse nome, você está de fato criando uma nova instância do mesmo. Você deve alterar as propriedades da instância ativa, e não as da classe Form1 (sim, mesmo no VB6, o nome do formulário em tempo de desenho significa uma classe quando em tempo de execução).

Dim f As Form
For Each f In Forms
If f.Name = [Ô]Form1[Ô] Then
[ô]... aqui você modifica as características da instância existente ...
Exit For
End If
Next
NEGRON 11/03/2013 00:20:04
#420236
Caro amigo PROFESSOR

Usei o código que vc postou mas acontece a mesma coisa, ele abre uma nova cópia do formulario; e não restaura o que está aberto....

vc teria algum exemplo pra postar o código aqui???

Desde já agradeço a colaboração


Tópico encerrado , respostas não são mais permitidas