VARIANT: ALGUEM SABE ESSA?

AJSO 05/04/2012 14:38:27
#399231
Caros Colegas

Acredito que o problema esta no entendimento deste conceito

este conteudo passado para variáveis e objetos NULL, EMPTY , [Ô][Ô], NOTHING

ao executar este código
---------------------------------------------------------------------------------------------------
Private Sub Command1_Click()
Dim S As String
MySub S [ô]<--- Causa erro: [Ô]Runtime error 94: Invalid use of null[Ô]
MySub Label1.Caption [ô]<--- OK? Por que? Deveria dar erro também.
End Sub

Private Sub MySub(ByRef X As Variant)
X = Null
End Sub
--------------------------------------------------------------------------
O erro persiste sim para ambos pois se passa o CAPTION de uma LABEL o conteudo não é null e sim vazio que é totalmente diferente de null.
Nesse seu teste o conteudo de CAPTION não é NULL e sim VAZIO que visualmente é semelhante, apesar do resultado destas variáveis serem o mesmo o uso
não se aplica da mesma forma.

Para fazer este teste entre resultado de variável e controle de objeto é preciso colocar entre Parenteses (X) e (Label1.Caption)

Olhem estes exemplo em anexo para entender.
Fiz um exemplo para entender como comparar o conteudo de um objeto(LABEL) a variável(S tipo VARIANT):

Boa sorte a todos........
JALEXM 05/04/2012 15:59:36
#399237
Citação:

Para fazer este teste entre resultado de variável e controle de objeto é preciso colocar entre Parenteses (X) e (Label1.Caption)



Interessante esse seu exemplo.
Afinal, o que fazem os parenteses numa chamada de Sub/Função?
Eu nunca uso. Poderia explicar?
Obrigado.
AJSO 05/04/2012 23:46:27
#399258
Caros Colegas
Estas expressões é de uso comum no VB isso vem do antigo VB 2.0, VB 3.0, VB 4.0, VB 5.0, VB 6.0 (he he he não sou tão velho assim)

Houve diferentes convenções para funções (parênteses necessário) e subcategorias (sem parênteses permitida, a não ser chamada utilizando a palavra-chave Call).

Resumindo:
Os parênteses () são usados para conter os argumentos passados para funções ou métodos.
Os colchetes [] são usados para acessar elementos de matrizes (arrays).
As chaves { } são usadas para conter múltiplas instruções. Com o uso de chaves é possível colocar várias instruções dentro de uma única funçõa ou fluxo de código.
Isso são vertentes de uso de expressões para montar um código ou efetuar processos matemáticos dentro dos compiladores para cada linguagem tem um significado similar e muito semelhante mas nunca igual.

Acredito que viram em meu simples projeto que passei, ambos os parametros do Objeto Label e Variável do tipo VARIANT valores como NULL, [Ô][Ô], EMPTY, NOTHING que matematicamente são diferentes e cada um tem um uso específico que apesar do exemplo simples o resultado foi igual e/ou identico.

Tem muita coisa que se analisarmos com um pouco de critério verá semelhanças entre VB, VB.Net, C#, J#, F#, C, C++, ASM, JAVA2EE, COBOL, PASCAL, BASIC, FORTRAN, etc....

Temos ainda aspas simples, aspas duplas, interrogação, dolar, asterisco, entre outros simbolos que nacesceram dessas linguagens e estão esquecidas por causa da melhoria da forma de utilizar as instruções para escrever código.

Boa Sorte.
LLAIA 07/04/2012 09:47:15
#399295
Engraçado, aplicando os parenteses o erro aparece.
Página 2 de 2 [14 registro(s)]
Tópico encerrado , respostas não são mais permitidas