constante
É comum encontrar códigos que contenham valores constantes que se repetem continuamente. Você também pode descobrir que o código usa números difíceis de lembrar e que não têm um significado claro.
Nestes casos, constantes podem ser usadas para melhorar significativamente a legibilidade e a manutenção do código. Constantes são nomes significativos que substituem valores numéricos ou strings que nunca mudam. Embora as constantes sejam um pouco como variáveis, elas não podem ser modificadas como variáveis, nem podem ser atribuídos novos valores às constantes. Constantes vêm de duas fontes:
1. Constantes internas ou definidas pelo sistema são fornecidas por aplicativos e controles. As constantes do Visual Basic estão listadas nas bibliotecas de objetos do Visual Basic (VB) e do Visual Basic para aplicativos (VBA) no "Navegador de objetos". Outros aplicativos que fornecem bibliotecas de objetos, como o Microsoft Excel e o Microsoft P Project, também fornecem listas de constantes que podem ser usadas com os objetos, métodos e propriedades do aplicativo. As constantes também são definidas na biblioteca de objetos de cada controle ActiveX. Para obter mais informações sobre como usar o Navegador de Objetos, consulte o Capítulo 9, “Programando com Objetos”.
2. Constantes simbólicas ou definidas pelo usuário são declaradas usando a instrução Const. As constantes definidas pelo usuário são descritas na próxima seção, "Criando suas próprias constantes".
No Visual Basic, os nomes das constantes estão em formato misto e seu prefixo indica o nome da biblioteca de objetos na qual a constante está definida. As constantes das bibliotecas de objetos do Visual Basic e do Visual Basic for Applications começam com vb, como vbTileHorizontal.
Ao projetar prefixos, você deve tentar o seu melhor para evitar conflitos acidentais. Constantes com o mesmo nome, mas valores diferentes, não devem estar presentes. Mesmo que sejam usados prefixos, duas bibliotecas de objetos ainda podem conter as mesmas constantes representando valores diferentes. Neste caso, qual constante é referenciada depende de qual biblioteca de objetos tem prioridade mais alta. Para obter informações sobre como alterar a prioridade da biblioteca de objetos, consulte a seção "Caixa de diálogo Referências".
Para ter certeza absoluta de que não ocorrerão conflitos de nomes de constantes, você pode qualificar referências a constantes com a seguinte sintaxe:
[libname.][modulename.]constname
Libname geralmente é o nome da classe do controle ou biblioteca. Modulename é o nome do módulo no qual a constante é definida. Constname é um nome constante. Cada elemento é definido na biblioteca de objetos e pode ser visualizado no Navegador de objetos.
Crie suas próprias constantes
A sintaxe para declarar constantes é :
[Público|Privado]Constconstantname[Astype]=expressão
O parâmetro nomeconstante é um nome simbólico válido (as regras são as mesmas para estabelecer nomes de variáveis), e expressão consiste em uma constante numérica ou uma constante de string e um operador, mas chamadas de função não podem ser usadas em expressão;
A instrução Const pode representar quantidades, datas e horas:
ConstconPi = 3,14159265358979
PublicConstconMaxPlanetsAsInteger=9
ConstconReleaseDate=#1/1/95#
Constantes de string também podem ser definidas usando a instrução Const:
PublicConstconVersion=07.10.A
ConstconCodeName = Enigma
Múltiplas declarações constantes podem ser colocadas em uma linha se separadas por vírgulas:
PublicConstconPi=3.14,conMaxPlanets=9,_
conWorldPop=6E 09
A expressão à direita do sinal de igual (=) geralmente é um número ou uma string literal, mas também pode ser uma expressão cujo resultado é um número ou uma string (embora a expressão não possa conter uma chamada de função). Você pode até definir novas constantes usando constantes definidas anteriormente.
ConstconPi2=conPi*2 Uma vez definida a constante, ela pode ser colocada no código para torná-lo mais legível. Por exemplo:
Sistema Solar Estático (1ToconMaxPlanets)
IfnumPeople>conWorldPopThenExitSub
Defina o intervalo de constantes definidas pelo usuário
Assim como as declarações de variáveis, as instruções Const têm escopo e usam as mesmas regras:
Para criar uma constante que exista apenas dentro de um procedimento, declare a constante dentro do procedimento.
Para criar uma constante que seja válida para todos os procedimentos do módulo, mas não para qualquer código fora do módulo, declare a constante na seção de declaração do módulo.
Para criar uma constante válida em toda a sua aplicação, declare-a na seção de declaração de um módulo padrão e coloque a palavra-chave Public na frente de Const. Constantes públicas não podem ser declaradas em um módulo de formulário ou módulo de classe.
Para obter informações mais detalhadas sobre o escopo, consulte a seção “Compreendendo o escopo das variáveis”, anteriormente neste capítulo.
Evite referências circulares
Como as constantes podem ser definidas em termos de outras constantes, deve-se tomar cuidado para não criar ciclos ou referências circulares entre mais de duas constantes. Um loop ocorre quando há mais de duas constantes públicas em um programa e cada constante pública é definida por outra. Por exemplo:
'No Módulo1:
PublicConstconA=conB*2 'Em toda a aplicação
'é válido em'.
'No Módulo2:
PublicConstconB=conA/2 'Em toda a aplicação
'é válido em'.
Se ocorrer um loop, o Visual Basic gerará uma mensagem de erro ao tentar executar o aplicativo. O programa não pode ser executado sem resolver a referência circular. Para evitar ciclos, as constantes públicas podem ser restritas a um único módulo, ou a apenas alguns módulos, no máximo.
tipo de dados
Uma variável é um local usado para armazenar valores. Ela possui um nome e um tipo de dados. O tipo de dados de uma variável determina como os bits que representam esses valores são armazenados na memória do computador. Você também pode especificar o tipo de dados de uma variável ao declará-la. Todas as variáveis possuem um tipo de dados para determinar que tipo de dados podem ser armazenados.
Por padrão, se o tipo de dados não for especificado na declaração, o tipo de dados da variável será Variant. O tipo de dados Variant é como um camaleão, pode representar diferentes tipos de dados em diferentes ocasiões. Quando a variável especificada é uma variável Variant, não há necessidade de conversão entre tipos de dados. O Visual Basic concluirá automaticamente várias conversões necessárias.
No entanto, se você souber que uma variável sempre armazena dados de um tipo específico e declarar uma variável desse tipo específico, o Visual Basic tratará esses dados com mais eficiência. Por exemplo, uma variável que armazena o nome de uma pessoa é melhor representada como um tipo de dados String porque os nomes sempre consistem em caracteres.
Além das variáveis, os tipos de dados também são utilizados em outras situações. Ao atribuir um valor a uma propriedade, o valor possui um tipo de dados; os parâmetros da função também possuem um tipo de dados. Na verdade, no Visual Basic, tudo relacionado aos dados está relacionado aos tipos de dados.
Você também pode declarar um array de qualquer tipo primitivo.
DetalhesPara obter mais detalhes, consulte a seção "Arrays" posteriormente neste capítulo. O Capítulo 15, “Projetando para desempenho e compatibilidade”, também discute a melhoria do desempenho do aplicativo por meio da seleção de tipos de dados.
Declarar variáveis com tipos de dados
Antes de usar uma variável não Variant, você deve declarar a variável como Astype usando uma instrução Private, Public, Dim ou Static. Por exemplo, as instruções a seguir declaram variáveis do tipo Integer, Double, String e Currency respectivamente:
PrivateIAsInteger
DimAmtAsDouble
StaticSeuNomeAsString
Contas públicasPaidAsCurrency
Uma instrução de declaração pode combinar várias declarações, consulte a seguinte instrução:
PrivateIAsInteger,AmtAsDouble
PrivateSeuNomeAsString, ContasPagasAsMoeda
PrivateTest,Amount,JAsInteger
Observe que se nenhum tipo de dados for fornecido, a variável especificada será do tipo padrão. No exemplo acima, as variáveis Teste e Quantidade são do tipo de dados Variante. Se sua experiência com outras linguagens de programação o levou a acreditar que todas as variáveis na mesma instrução de declaração têm o mesmo tipo de dados especificado (inteiro neste caso), os resultados aqui podem ser revigorantes.
Tipo de dados numérico
VisualBasic oferece suporte a vários tipos de dados numéricos: Integer (inteiro), Long (inteiro longo), Single (ponto flutuante de precisão simples), Double (ponto flutuante de precisão dupla) e Moeda (moeda). Os tipos numéricos geralmente ocupam menos espaço de armazenamento que os tipos Variant.
Se você sabe que uma variável sempre armazenará números inteiros (como 12) em vez de números com ponto decimal (como 3,57), você deve declará-la como um tipo Integer ou Long. Os inteiros executam operações mais rapidamente e ocupam menos memória do que outros tipos de dados. Os tipos inteiros são particularmente úteis quando usados como variáveis de contador em loops For...Next.
Para obter mais informações sobre estruturas de controle, consulte "Visão geral das estruturas de controle", posteriormente neste capítulo. Se as variáveis contiverem decimais, elas poderão ser declaradas como variáveis Simples, Duplas ou Moeda. O tipo de dados Moeda suporta 4 dígitos à direita da vírgula decimal e 15 dígitos à esquerda da vírgula decimal; é um tipo de dados de ponto fixo preciso, adequado para cálculos de moeda. Os números de ponto flutuante (simples e duplo) têm um intervalo válido muito maior que a moeda, mas são possíveis pequenos erros de transporte.
Observe que os valores de ponto flutuante podem ser representados como mmmEeee ou mmmDeee, onde mmm é a mantissa e eee é o expoente (elevado à potência da base 10). O valor positivo máximo do tipo de dados Único é 3,402823E 38, ou 3,4 vezes 10 elevado a 38; o valor positivo máximo do tipo de dados Duplo é 1,79769313486232D 308, ou 1,8 vezes 10 elevado a 308. Usar D para separar as partes mantissa e expoente de um literal numérico faz com que o valor seja tratado como um tipo de dados Double. Da mesma forma, usar E dessa forma faz com que o valor seja tratado como um tipo de dados Único.
Tipo de dados de byte
Se a variável contiver um número binário, declare-a como um array do tipo de dados Byte (arrays são discutidos em "Arrays" posteriormente neste capítulo). Armazenar dados binários em variáveis Byte preserva os dados durante a conversão de formato. Quando uma variável String é convertida entre os formatos ANSI e Unicode, quaisquer dados binários na variável serão destruídos. O Visual Basic converte automaticamente entre ANSI e Unicode em qualquer uma das seguintes situações:
Ao ler um arquivo
Ao escrever um arquivo
Ao chamar uma DLL
Ao chamar métodos e propriedades de um objeto
Exceto a subtração unária, todos os operadores que podem operar com números inteiros podem operar com o tipo de dados Byte. Como Byte é um tipo sem sinal de 0 a 255, ele não pode representar números negativos. Portanto, ao fazer a subtração unária, o VisualBasic primeiro converte o Byte em um número inteiro assinado.
Todas as variáveis numéricas podem ser atribuídas entre si e a variáveis do tipo Variant. Antes de atribuir um número de ponto flutuante a um número inteiro, o Visual Basic arredonda a parte decimal do número de ponto flutuante em vez de removê-lo.
Detalhes Para obter detalhes sobre a conversão Unicode e ANSI, consulte o Capítulo 16, "Internacionalização".
Tipo de dados de string
Se uma variável sempre contém uma string e nunca um valor numérico, você pode declará-la como tipo String.
PrivateSAsString
Você pode então atribuir uma string a esta variável e operar nela usando funções de string.
S=Banco de dados
S=Esquerda(S,4)
Por padrão, uma variável ou parâmetro String é uma string de comprimento variável. À medida que novos dados são atribuídos a uma string, seu comprimento pode aumentar ou diminuir. Também é possível declarar uma string com comprimento fixo. Uma string de comprimento fixo pode ser declarada com a seguinte sintaxe:
String*tamanho
Por exemplo, para declarar uma string de 50 caracteres, use a seguinte instrução:
DimEmpNameAsString*50
Se menos de 50 caracteres forem atribuídos à sequência, a parte ausente de EmpName será preenchida com espaços. Se o comprimento atribuído à cadeia de caracteres for muito longo e não puder se tornar uma cadeia de caracteres de comprimento fixo, o Visual Basic truncará diretamente os caracteres em excesso.
Como as strings de comprimento fixo são preenchidas com espaços no final do espaço extra, as funções Trim e RTrim que removem espaços podem ser muito úteis ao lidar com strings de comprimento fixo. Strings de comprimento fixo em módulos padrão podem ser declaradas como Públicas ou Privadas. Em formulários e módulos de classe, strings de comprimento fixo devem ser declaradas Privadas.
Para obter detalhes, consulte "Funções Ltrim, RTrim e Trim" no "Manual de referência da linguagem Visual Basic 6.0".
Trocar strings e números
Se a string representar um valor numérico, a string poderá ser atribuída a uma variável numérica. Valores numéricos também podem ser atribuídos a variáveis de string. Por exemplo, coloque botões de comando, caixas de texto e caixas de listagem em um formulário. Insira o seguinte código no evento Click do botão de comando. Execute o aplicativo e clique no botão de comando.
PrivateSubCommand1_Click()
DimintXAsInteger
DimstrYAsString
stY=100,23
intX=strY 'Passa string para variável numérica.
List1.AddItemCos(strY) 'Adiciona o valor do cosseno do valor na string.
'Adicionar à caixa de listagem.
strY=Cos(strY) 'Transfere o valor do cosseno para a variável string.
Text1.Text=strY 'Exibir string na caixa de texto.
Fim Sub
O Visual Basic força automaticamente as variáveis para o tipo de dados apropriado. Tenha cuidado ao converter strings e valores numéricos; se o valor na string passada não for um valor numérico, ocorrerá um erro em tempo de execução.
Tipo de dados booleano
Se o valor da variável for apenas informações "verdadeiro/falso", "sim/não" e "ligado/desligado", ela poderá ser declarada como tipo booleano. O valor padrão de Boolean é False. No exemplo abaixo, blnRunning é uma variável booleana que armazena uma configuração simples de sim/não.
DimblnRunningAsBoolean
'Verifique se a fita está girando.
IfRecorder.Direction=1Então
blnRunning = Verdadeiro
Endif
Tipo de dados de data
Os valores de data e hora podem estar contidos no tipo de dados Data específico ou em variáveis Variant. As propriedades gerais de data se aplicam a ambos os tipos.
Para obter mais informações, consulte a seção "Armazenando valores de data/hora em variáveis variantes" dos "Tópicos avançados de variáveis" no Manual Online.
Quando outros tipos de dados numéricos são convertidos em Data, o valor à esquerda do ponto decimal representa as informações de Data e o valor à direita do ponto decimal representa a Hora. Meia-noite é 0 e meio-dia é 0,5. Os números negativos representam datas anteriores a 31 de dezembro de 1899 DC.
->