Marcos
unread,Apr 21, 2011, 4:19:55 PM4/21/11Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to etecpg 2ª semestre 2010
Fala galera
Bom, vocês já devem ter reparado um tal de ByVal no início do código
de cada objeto, ali no paramêtro. Bom ele também tem um "irmão"
chamado ByRef, e aqui venho explicar sobre a paramêtros no VB e estes
dois comandos.
PARAMÊTRO
No VB, o paramêtro funciona como qualquer outra linguagem, e nele é
possível passar desde tipo simples de variáveis a objetos como um
botão ou uma combobox.
Exemplos poderão ser vistos na explicação de ByVal e ByRef.
BYVAL
O ByVal é o paramêtro mais comum. Na utlização deste comando, as
variáveis ou objetos, são passados como uma cópia por paramêtro e o
original não é alterado. Vamos a um exemplo:
Public Function divisao(ByVal a As Double, ByVal b As Double)
If (b = 0) Then
Return "Não Existe divisão por zero"
Else
a = a / b
Return a
End If
End Function
Public Sub numeros()
Dim a, b As Double
a = 50
b = 10
MessageBox.Show(divisao(a, b))
MessageBox.Show(divisao(a, b))
MessageBox.Show(divisao(a, b))
End Sub
No código acima, todas as messageBox exibirão 5, pois o valor de a,
que é 50, nunca foi alterado, já que o paramêtro a é uma cópia da
variável a.
BYREF
O ByRef é utilizado não para passar uma cópia da variável ou objeto e
sim ele própriamente dito.
Vamos repetir o mesmo exemplo, porém agora com ByRef.
Public Function divisao(ByRef a As Double, ByVal b As Double)
If (b = 0) Then
Return "Não Existe divisão por zero"
Else
a = a / b
Return a
End If
End Function
Public Sub numeros()
Dim a, b As Double
a = 50
b = 10
MessageBox.Show(divisao(a, b))
MessageBox.Show(divisao(a, b))
MessageBox.Show(divisao(a, b))
End Sub
Nesse caso a foi literalmente passado por paramêtro, deste modo será
exibido 5 na primeira MessageBox, 0,5 na segunda e 0,05 na terceira.
Isso acontece porque a foi passado para outro lado como referência
(ByRef) e não apenas como seu valor (ByVal), ou seja, o que foi
passado pro paramêtro é o mesmo espaço de memória da variável e não
uma cópia com o mesmo valor. Assim sendo, se mudarmos o valor do
paramêtro, mudamos o valor da variável.
Aé a próxima, que será uma breve explicação do Handles.
Marcos Costa