APRENDENDO A DECLARAR VARIAVEIS NO VB6

USUARIO.EXCLUIDOS 31/05/2007 17:02:08
#219186
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


USUARIO.EXCLUIDOS 31/05/2007 17:10:26
#219190
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!
USUARIO.EXCLUIDOS 31/05/2007 17:12:32
#219191
Resposta escolhida
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

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.
ALEXANDREMOTA 31/05/2007 17:50:45
#219219
Para utilizar uma declaração em todos os forms do projeto declare em um módulo
USUARIO.EXCLUIDOS 01/06/2007 05:02:26
#219269
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.
USUARIO.EXCLUIDOS 01/06/2007 09:24:44
#219285
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.

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

USUARIO.EXCLUIDOS 01/06/2007 09:35:35
#219292
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...
USUARIO.EXCLUIDOS 01/06/2007 09:36:07
#219293
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...
USUARIO.EXCLUIDOS 01/06/2007 10:05:54
#219310
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.


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

LUIS.HERRERA 01/06/2007 10:08:38
#219311
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
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.
USUARIO.EXCLUIDOS 01/06/2007 10:33:16
#219317
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
Página 1 de 2 [14 registro(s)]
Tópico encerrado , respostas não são mais permitidas