VARIAVEL EM TODOS OS FORMS

HELIO.COSTA 30/04/2014 09:35:01
#437799
Bom dia,

Estou precisando de armazenar várias variáveis, para poder ler e alterar em outros formulários. Em VB6 declarava como publica em um módulo e acessava de em outors forms. Fiz isto com vb.net e não funcionou.
Neste exemplo do site fiz da mesma forma e não funcionou, somente se chamar dentro do mesmo form, veja abaixo:

Insira um arquivo do tipo Class em seu projeto:
Dentro dele coloque uma propriedade qualquer:
Public Class Class1
Private iVariavel As string

Public Property Variavel() As String
Get
Variavel = iVariavel
End Get
Set (value As String)
iVariavel = value
End Set
End Property
End Class

Para utilizar esta classe, dentro do Módulo digite: (nesta parte, utilizei esta classe em todos os forms)
Public objClasse As New Class1

Agora o objeto refente à Class1 está visível em todo o seu projeto.
Para atribuir um valor à propriedade, faça:
objClasse.Variavel = [Ô]Alguma coisa[Ô] (para escrever na variável objClasse.Variavel = Dados)

Para recuperar o valor da propriedade, faça: (aqui Dados = objClasse.Variavel)
MsgBox(objClasse.Variavel)

Quando escrevo e leio a variavel dentro do form que escrevi, leio normalmente, quando vou para outro form a variavel está vazia.

Se poderam ajudar, desde já agredeço.
NILSONTRES 01/05/2014 00:52:32
#437823
Resposta escolhida
Só se vc fechar o projeto, limpar a variavel, ou fazer outra chamada com new da classe.
De resto, isso funciona.
HELIO.COSTA 01/05/2014 09:28:42
#437825
mas esta declaração [txt-color=#e80000]Public objClasse As New Class1[/txt-color], tem que está em todos os forms que irei chamar?
Tem que estar dentro da classe que criei tambem?
NILSONTRES 01/05/2014 10:07:21
#437826
Citação:

mas esta declaração Public objClasse As New Class1, tem que está em todos os forms que irei chamar?


Não, pois ai sim vc estara limpando, porque vc já diz new , uma nova instancia.

Citação:

Tem que estar dentro da classe que criei tambem?


Só no modulo
HELIO.COSTA 01/05/2014 10:35:43
#437827
Ok, NILSON, vou fazer os testes.
JCM0867 01/05/2014 11:33:50
#437828
crie um módulo chamado [Ô]VariaveisPublicas[Ô] por exemplo
e joga tudo lá, Nos Módulos tb se coloca funções que são usadas em várias partes do sistema.
Public objClasse As New Class1 tb vai no Módulo

Até onde sei só colocando as variáveis como Publicas num Módulo, no VB6 é a mesma coisa


Evitar a felicidade com medo de que ela acabe, é o melhor meio de se tornar infeliz.
Albert Einstein
HELIO.COSTA 01/05/2014 11:34:03
#437829
Nilson, funcionou perfeito.
Uma dúvida, se declarar uma variável publica dentro deste módulo sem a Propety vai funcionar tambem?
Se funcionar, qual a consequência?
é viável?
NILSONTRES 01/05/2014 11:57:52
#437830
Funciona Sim, se for muitas variaveis a consequencia é ficar todas carregadas no sistema.
HELIO.COSTA 01/05/2014 12:08:56
#437831
Ok. Muito obrigado.
Bom feriado.
Tópico encerrado , respostas não são mais permitidas