APRENDENDO A DECLARAR VARIAVEIS NO VB6
Quem pode me dar uma aula basica ,cheguei nesse estágio agora tenho que aprender a declarar para acontecer em outro form o que eu preciso.
FORM 1 E FORM 2
FORM 1 E FORM 2
bom, pelo o que eu entendi você que declarar algo para os dois forms?
se for use um Module.
se não for isso, formule melhor sua pergunta!
se for use um Module.
se não for isso, formule melhor sua pergunta!
Eu costumo fazer assim:
FORM 2 - Nome: frmForm2
Private _codigo as Integer
Public Property Get Codigo() As Integer
Codiogo = _codigo
End Property
Public Property Let Codigo(ByVal vNewValue As Integer)
_codigo = vNewValue
End Property
FORM 1 - Nome: frmForm1
frmForm2.Codigo = Me.txtCodigo.Text
frmForm2.Show()
pelo form1 passo valor pro form2.
FORM 2 - Nome: frmForm2
Private _codigo as Integer
Public Property Get Codigo() As Integer
Codiogo = _codigo
End Property
Public Property Let Codigo(ByVal vNewValue As Integer)
_codigo = vNewValue
End Property
Private Sub Form_Load()
MsgBox("Codigo: " & Codigo)
End Sub
FORM 1 - Nome: frmForm1
frmForm2.Codigo = Me.txtCodigo.Text
frmForm2.Show()
pelo form1 passo valor pro form2.
Para utilizar uma declaração em todos os forms do projeto declare em um módulo
Existe uma palavra chamada Escopo que quer dizer o "tempo de vida" ou senão o "prazo de validade" de algo no programa.
A) O escopo pode ser local para uma função : Variáveis declaradas dentro de uma Function ou Sub existirão enquanto o código estiver dentro deste local
B) O escopo pode ser Local para um formulário ou módulo : Variáveis declaradas como Private Dentro de um Form ou Módulo (fora de qualquer sub ou função) serão válidas para qualquer função ou sub dentro deste form
C) Escopo Global : Neste caso qualquer variável declarada como Public em um módulo ou formulário serão válidas enquanto o form estiver ativo ou durante todo o programa caso esteja localizada num módulo.
Muitas vezes queremos que um valor que estamos trabalhando em um formulário seja transportado para outro para continuarmos a manuzeá-lo e temos algumas formas de fazer isto.
A 1ê e mais intuitiva seria chamar o valor diretamente de um objeto do outro form, mas para isto os 2 formulários deveriam estar ativos.
Dentro do form2 teriamos:
txtMyVar.txt = form1.txtMyVar.txt
Ps: Caso txtMyVar.txt fosse uma variável no form 1 a sintaxe seria semelhante ... formulário.nome_variavel_publica
A 2ê forma seria criar mesmo um módulo e dentro dele colocar na seção declarations o código:
Public MyVar as Variant
No form1 em algum momento a gente escreve:
MyVar = 1
No form2, após termos modificado o valor de MyVar bo form1 MyVar já entra valendo 1
Porra, é floids só com palavras explicar pra um noob exatamente como funciona este lance de escopo, tipo de variável etc ...
Vais precisar de um bom livro, Este é o tipo de assunto que não pode ser aprendido superficialmente.
Minha recomendação é esta; tentei ajudar ... mas não da pra editar um livro aqui pra vc.
A) O escopo pode ser local para uma função : Variáveis declaradas dentro de uma Function ou Sub existirão enquanto o código estiver dentro deste local
B) O escopo pode ser Local para um formulário ou módulo : Variáveis declaradas como Private Dentro de um Form ou Módulo (fora de qualquer sub ou função) serão válidas para qualquer função ou sub dentro deste form
C) Escopo Global : Neste caso qualquer variável declarada como Public em um módulo ou formulário serão válidas enquanto o form estiver ativo ou durante todo o programa caso esteja localizada num módulo.
Muitas vezes queremos que um valor que estamos trabalhando em um formulário seja transportado para outro para continuarmos a manuzeá-lo e temos algumas formas de fazer isto.
A 1ê e mais intuitiva seria chamar o valor diretamente de um objeto do outro form, mas para isto os 2 formulários deveriam estar ativos.
Dentro do form2 teriamos:
txtMyVar.txt = form1.txtMyVar.txt
Ps: Caso txtMyVar.txt fosse uma variável no form 1 a sintaxe seria semelhante ... formulário.nome_variavel_publica
A 2ê forma seria criar mesmo um módulo e dentro dele colocar na seção declarations o código:
Public MyVar as Variant
No form1 em algum momento a gente escreve:
MyVar = 1
No form2, após termos modificado o valor de MyVar bo form1 MyVar já entra valendo 1
Porra, é floids só com palavras explicar pra um noob exatamente como funciona este lance de escopo, tipo de variável etc ...
Vais precisar de um bom livro, Este é o tipo de assunto que não pode ser aprendido superficialmente.
Minha recomendação é esta; tentei ajudar ... mas não da pra editar um livro aqui pra vc.
Quero aprender a declarar para essa situação.
Ja me deram alternativa ,mas ouvi de outras pessoas que e melhor criar variaveis dentro do modulo.
Ja me deram alternativa ,mas ouvi de outras pessoas que e melhor criar variaveis dentro do modulo.
Private Sub cb_e_adi_Click()
Me.Option.Value = False
Me.Option2.Value = False
Me.Option3.Value = False
If Me.cb_e_adi.List(Me.cb_e_adi.ListIndex) = "Novo Projeto" Then
'Verifica se a opcao Novo Projeto foi selecionado , se sim a opcao Completo
'sera abilitado
Me.Option.Enabled = True
Me.Option2.Enabled = False
Me.Option3.Enabled = False
Me.Option.Value = True
ElseIf Me.cb_e_adi.List(Me.cb_e_adi.ListIndex) = "Correção de erros" Then
'Verifica se a opcao Correcao de erros foi selecionado , se sim a opcao
'especificacao sera abilitado
Me.Option.Enabled = False
Me.Option2.Enabled = False
Me.Option3.Enabled = True
Me.Option3.Value = True
End If
'Verifica se as demais opcoes foram selecionadas, se sim a opcao
'Completa e Simplificada serao abilitadas.
If Me.cb_e_adi.List(Me.cb_e_adi.ListIndex) = "Adaptativa" Or Me.cb_e_adi.List(Me.cb_e_adi.ListIndex) = "Consulta-Consultoria" Or _
Me.cb_e_adi.List(Me.cb_e_adi.ListIndex) = "Departamental" Or Me.cb_e_adi.List(Me.cb_e_adi.ListIndex) = "Emergencial" Or _
Me.cb_e_adi.List(Me.cb_e_adi.ListIndex) = "Evolutiva" Or Me.cb_e_adi.List(Me.cb_e_adi.ListIndex) = "Infra-Estrutura" Or _
Me.cb_e_adi.List(Me.cb_e_adi.ListIndex) = "Migração SGD para SSTI" Then
Me.Option.Enabled = True
Me.Option2.Enabled = True
Me.Option3.Enabled = False
'Me.Option2.Value = True
End If
End Sub
Primeiro crie um módulo
e neste módulo declare a varievel como global
exemplo
Global SuaVariavel as string "Se foro tipo texto"
no form1 e no form2
os text recebe os dados desta variavel
exemplo
no form1
text1.text = SuaVariavel
no form2
text1.text = SuaVariavel
repita isso para todas criando variaveis para cada uma delas
Espero ter ajudado...
e neste módulo declare a varievel como global
exemplo
Global SuaVariavel as string "Se foro tipo texto"
no form1 e no form2
os text recebe os dados desta variavel
exemplo
no form1
text1.text = SuaVariavel
no form2
text1.text = SuaVariavel
repita isso para todas criando variaveis para cada uma delas
Espero ter ajudado...
Primeiro crie um módulo
e neste módulo declare a varievel como global
exemplo
Global SuaVariavel as string "Se foro tipo texto"
no form1 e no form2
os text recebe os dados desta variavel
exemplo
no form1
text1.text = SuaVariavel
no form2
text1.text = SuaVariavel
repita isso para todas criando variaveis para cada uma delas
Espero ter ajudado...
e neste módulo declare a varievel como global
exemplo
Global SuaVariavel as string "Se foro tipo texto"
no form1 e no form2
os text recebe os dados desta variavel
exemplo
no form1
text1.text = SuaVariavel
no form2
text1.text = SuaVariavel
repita isso para todas criando variaveis para cada uma delas
Espero ter ajudado...
Olha esse exemplo e um combobox e option button declarar como texto ?
Meu e tão simples as outras linguagens para declarar srsrsr e a primeira coisa.
Mas no VB estou perdidão ,sabado vou comeca o treinamento e vo cair em cima ,mas espero ficar com alguma coisa mais clara para saber perguntar.
O que eu quero e .
No form1 um existe um combobox ,onde dependendo da opção selecionada os option button do form2 serao inibido de acordo com a minha regra.
Queria fazer isso.
Mas ai ,tenho que declrar ,em um modulo que esta me mantando ,e fazer referencia atraves dele para carregar o outro form.
Eh galera me ajudem ,ainda bem que na primeira aula no SENAC amanha terei varias duvidas.
Me orientem por favor.
Meu e tão simples as outras linguagens para declarar srsrsr e a primeira coisa.
Mas no VB estou perdidão ,sabado vou comeca o treinamento e vo cair em cima ,mas espero ficar com alguma coisa mais clara para saber perguntar.
O que eu quero e .
No form1 um existe um combobox ,onde dependendo da opção selecionada os option button do form2 serao inibido de acordo com a minha regra.
Queria fazer isso.
Mas ai ,tenho que declrar ,em um modulo que esta me mantando ,e fazer referencia atraves dele para carregar o outro form.
Eh galera me ajudem ,ainda bem que na primeira aula no SENAC amanha terei varias duvidas.
Me orientem por favor.
Private Sub cb_e_adi_Click()
Me.Option.Value = False
Me.Option2.Value = False
Me.Option3.Value = False
If Me.cb_e_adi.List(Me.cb_e_adi.ListIndex) = "Novo Projeto" Then
'Verifica se a opcao Novo Projeto foi selecionado , se sim a opcao Completo
'sera abilitado
Me.Option.Enabled = True
Me.Option2.Enabled = False
Me.Option3.Enabled = False
Me.Option.Value = True
ElseIf Me.cb_e_adi.List(Me.cb_e_adi.ListIndex) = "Correção de erros" Then
'Verifica se a opcao Correcao de erros foi selecionado , se sim a opcao
'especificacao sera abilitado
Me.Option.Enabled = False
Me.Option2.Enabled = False
Me.Option3.Enabled = True
Me.Option3.Value = True
End If
'Verifica se as demais opcoes foram selecionadas, se sim a opcao
'Completa e Simplificada serao abilitadas.
If Me.cb_e_adi.List(Me.cb_e_adi.ListIndex) = "Adaptativa" Or Me.cb_e_adi.List(Me.cb_e_adi.ListIndex) = "Consulta-Consultoria" Or _
Me.cb_e_adi.List(Me.cb_e_adi.ListIndex) = "Departamental" Or Me.cb_e_adi.List(Me.cb_e_adi.ListIndex) = "Emergencial" Or _
Me.cb_e_adi.List(Me.cb_e_adi.ListIndex) = "Evolutiva" Or Me.cb_e_adi.List(Me.cb_e_adi.ListIndex) = "Infra-Estrutura" Or _
Me.cb_e_adi.List(Me.cb_e_adi.ListIndex) = "Migração SGD para SSTI" Then
Me.Option.Enabled = True
Me.Option2.Enabled = True
Me.Option3.Enabled = False
'Me.Option2.Value = True
End If
Bem cada caso é um caso vejamos:
1- Se você precisa que somente dois forms troquem dados, a dica do Piolho parece a melhor
2- Se você precisa que determinados valores sejam acessados pelo aplicativo inteiro, a melhor seria declarar variáveis Públicas num Módulo BAS.
3- Há outra alternativa para troca de dados entre (n) formulários, porém sem criar nenhuma variável nova. Mas isso somente para um único dado. Veja:
Nos forms há uma propriedade chamada TAG, nela você pode passar qualquer valor que será registrado como String, então dentro do form que recebeu o valor, você converte para o tipo que precisar, ex:
Form1 (vai receber o valor inteiro 65 do form2)
'fazendo cálculo com o valor recebido por um botão por exemplo
Passando o valor pelo Form2
Form1.hide
Form1.tag = 65
Form1.Show
Espero ter ajudado.
1- Se você precisa que somente dois forms troquem dados, a dica do Piolho parece a melhor
2- Se você precisa que determinados valores sejam acessados pelo aplicativo inteiro, a melhor seria declarar variáveis Públicas num Módulo BAS.
3- Há outra alternativa para troca de dados entre (n) formulários, porém sem criar nenhuma variável nova. Mas isso somente para um único dado. Veja:
Nos forms há uma propriedade chamada TAG, nela você pode passar qualquer valor que será registrado como String, então dentro do form que recebeu o valor, você converte para o tipo que precisar, ex:
Form1 (vai receber o valor inteiro 65 do form2)
'fazendo cálculo com o valor recebido por um botão por exemplo
Private Sub Calculo_Click()
me.TextBox1.Text = 5 * Int(trim(me.tag))
End Sub
Passando o valor pelo Form2
Form1.hide
Form1.tag = 65
Form1.Show
Espero ter ajudado.
Então tb concordo com relação ao piolho ,porem os metodos utilizados na empresa e criação de variaveis para essa situação.
Isso e norma.
No exemplo que eu mencionei como ficaria ,se me de uma luz porque ta complicado e ainda tem varias dessas para eu fazer ,eu tendo ideia de uma as outras vão sair mais facil.
Coitado do professor amanha ,mas sempre o primeiro dia e aula teorica na maioria dos treinamentos.
Ajudem de criação de variaveis para as funções acima.
Grato
Isso e norma.
No exemplo que eu mencionei como ficaria ,se me de uma luz porque ta complicado e ainda tem varias dessas para eu fazer ,eu tendo ideia de uma as outras vão sair mais facil.
Coitado do professor amanha ,mas sempre o primeiro dia e aula teorica na maioria dos treinamentos.
Ajudem de criação de variaveis para as funções acima.
Grato
Tópico encerrado , respostas não são mais permitidas