Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

terra.jr

VB - Array de objetos

Recommended Posts

Galera, meu forte é Java, mas novamente eu to precisando fazer um trabalho em Visual Basic e ai o Bicho Pega.

 

Eu queria saber como eu faço para criar uma array de objeto TextField por exemplo:

 

Eu criei um módulo que tem o seguinte código:

Public Sub desativaCampo(ByRef obj As Object)
		obj(cont).Enabled = False
		obj(cont).BackColor = &H80000000
End Sub

Public Sub ativaCampo(ByRef obj() As Object)
		obj.Enabled = True
		obj.BackColor = &H80000005
End Sub

Ai na minha tela eu coloco:

 

desativaCampo(txtCampo1)
ativaCampo(txtCampo1)

Nesse código acima ele deixa desativado e com a cor cinza e quando eu chamo o ativaCampo(objeto) ele ativa o campo que foi passado como parametro.

 

Eu queria saber se tem como eu passar mais que um campo de uma só vez, como parametro.

 

Eu tentei algo como:

 

Public Sub desativaCampo(ByRef obj() As Object)
	Dim cont As Integer
	For cont = 0 To obj
		obj(cont).Enabled = False
		obj(cont).BackColor = &H80000000
	Next
End Sub

Public Sub ativaCampo(ByRef obj() As Object)
	Dim cont As Integer
	For cont = 0 To obj
		obj(cont).Enabled = True
		obj(cont).BackColor = &H80000005
	Next
End Sub

Ai no minha tela eu faria:

desativaCampo(txtCampo1, txtCampo2, txtCampo7)

Mas não deu certo!

HELP ME

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você ta fazendo para 'catar' os campos que vao ser desabilitados, o usuário vai marcar, são aleatórios... como que é?

 

Faz um array dos objetos que você ta querendo bloquear e passa para o procedimento

Esse link fala sobre array dinamicos, redeclarar um array é bem interesate http://patorjk.com/programming/tutorials/vbarrays.htm

Acho que você vai precisar já que, provavelmente, você não sabe quantos são os campos.

 

Flw

 

Ata-

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, no meu caso, eu só não quero fazer assim

CAMPO1.enable = false
CAMPO2.enable = false
CAMPT1.enable = false
CAMPT2.enable = false
CAMPT3.enable = false

e depois fazer

 

CAMPO1.enable = true
CAMPO2.enable = true
CAMPT1.enable = true
CAMPT2.enable = true
CAMPT3.enable = true

É trabalhoso.

Seria mais interessante se eu fizesse assim:

 

ativaCampos(CAMPO1, CAMPO2, CAMPT1, CAMPT2, CAMPT3

E como eu tentei fazer é do jeito que tá no primeiro POST (ACIMA)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você só não quer fazer isso

Tenta assim,

 

Poe um Text no form, copia ele e cola, ele vai pergunta se você deseja criar um array de objetos.

Dai vai ficar assim

Text(0).enabled=false
Text(1).enabled=false
Text(2).enabled=false

'pra você bloquear

For i=0 to Text.UBound
	Text(i).Enabled = false
Next
Dai pra você pega o numero do ultimo indice.

lastpos = Text.UBound

Não sei se assim serve pra você. Se não servir volta ae, se servir volta também :D

 

Flw

 

Ata-

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.