Tudo sobre Visual Basic

Tudo sobre Visual Basic

(Parte 4 de 7)

Por exemplo: o resultado da linha de comando Str(3.1416) será o texto “3.1416”.

Operadores

Depois que o programa recebe dados do usuário, o próximo passo é fazer algo com esses dados, normalmente cálculos. Qualquer tipo de cálculo envolve uma operação; portanto, os comandos especiais para trabalhar com dados são chamados operadores. O VB fornece cinco tipos de operadores:

Operadores Aritméticos

São os operadores matemáticos clássicos, que permitem somar, subtrair, multiplicar e dividir números ou variáveis que contenham números:

Operador Função Exemplo

=Nesse caso, atribuição de valorVariável = 0 +Soma de dois númerosvSoma = X + Y –Subtração de dois números

Inversão de positivo/negativo vSalLiq = vSalBruto – vImposto vNegativo = –vPositivo

*Multiplicação de dois númerosvTotal = vPreço * vQuantidade / Divisão de dois números, sendo que o resultado será um número com ponto flutuante (decimal), como 5.8547 vTeste = 1910 / 25 (vTeste será igual a 76.4)

\ Divisão de dois números, sendo que o resultado será um número inteiro vTeste = 1910 \ 25 (vTeste será igual a 76)

ModResto da divisão inteira de um número por outrovTeste = 1910 Mod 25 (vTeste será igual a 10) ExponenciaçãovQuadrado = vNúmero 2

Operador de String

O mais simples de todos. É o operador “&”, que realiza a concatenação (união) de dois ou mais dados tipo String. Veja um exemplo:

vLinguagem = “Visual ” & “Basic”

O comando acima resulta em “Visual Basic”, pois o dado após o operador é agrupado por este ao final do primeiro, resultando na união de ambos: foram concatenados. Também pode ser usado para isso o operador “+”, mas recomenda-se usar “&” porque este converte dados de outros tipos antes da concatenação, evitando erros de execução.

Operadores de Datas

São aqueles que permitem efetuar cálculos com dados tipo Date. Como as datas são representadas internamente pelo VB como números, podemos obter outras datas somando valores a elas, ou então determinar o número de dias entre uma data e outra através de subtração. Veja a tabela:

Operador Função Exemplo

+ Obter a partir da soma de uma data inicial e um número uma outra data. O número será entendido como quantidade de dias.

vVencimento = Date + 30

(Date retorna a data de hoje, à qual serão somados trinta dias)

–Obter a diferença em dias entre duas datasvAtraso = vPagto – vVenc (vAtraso receberá o número de dias entre o vencimento e o pagamento)

Um lembrete: como o tipo Date também serve para indicar horas, para cálculos de horas usamos os mesmos operadores, mas trabalhamos com a parte decimal das variáveis ou expressões.

Microsoft Visual Basic 626

Operadores Lógicos

São aqueles que manipulam os valores lógicos True (verdadeiro) e False (falso). O VB também representa esses valores como –1 e 0, respectivamente. Não entraremos em muitos detalhes com esses operadores agora, pois eles serão mais bem estudados quando abordarmos as estruturas de controle.

Operador Função Exemplo

And E lógico: retorna verdadeiro se todos os valores da expressão forem verdadeiros e falso em qualquer outro caso

Expressão1 And Expressão2

Or Ou lógico: retorna falso somente se todos os valores da expressão forem falsos e verdadeiros em qualquer outro caso

Expressão1 Or Expressão2

XorOu lógico exclusivo: a diferença desse operador para Or é que, se todos os valores da expressão forem verdadeiros, ele retorna falso (não há erro, é isso mesmo!)

Expressão1 Xor Expressão2

Not Não lógico: “nega”, ou melhor, inverte o valor lógico da expressão Expressão1 = Not Expressão2

Operadores de Comparação

Servem para a comparação de dados. Assim como os operadores lógicos, estudaremos melhor esse assunto juntamente com as estruturas de controle.

Operador Função Exemplo <Menor queExpressão1 < Expressão2

<=Menor ou igual aExpressão1 <= Expressão2 >Maior queExpressão1 > Expressão2

>=Maior ou igual aExpressão1 >= Expressão2 =Nesse caso, igual aExpressão1 = Expressão2 <>Diferente deExpressão1 <> Expressão2

Muitocuidadoaocompararstringscomosoperadores“=”e“<>”,poisduas strings são iguais apenas se forem absolutamente idênticas. Isso quer dizer que, se você fizer a comparação “a” = “A”, o resultado será falso, pois “a” (minúsculo) possui um código ASCII diferente de “A” (maiúsculo), e portanto não são iguais.

O Foco

No Windows, apenas uma janela (formulário) ou controle pode, num dado instante, receber ações (cliques) do mouse ou entradas via teclado. Dizemos que esse objeto possui o foco (focus, em inglês). O foco é geralmente indicado por uma legenda ou moldura destacada, ou então pelo cursor estar posicionado no controle, e pode ser alterado pela ação do usuário ou através de código. Quando um objeto recebe o foco, ocorre o evento Got-Focus, e quando ele o perde ocorre o evento LostFocus.

Outra característica importante a ser observada é que, quando um programa VB é executado, o cursor se posiciona no primeiro controle que você inseriu no formulário. Por exemplo: se o primeiro controle a ser inserido foi o txtNum1, quando você iniciar o aplicativo é nele que o cursor estará posicionado. Usando a tecla Tab, o cursor vai se alternando entre os campos, sempre seguindo a ordem em que os controles foram colocados no formulário. Isso chama-se ordem de tabulação e é determinada pela propriedade TabIndex dos controles.

Propriedade TabIndex

Como já foi dito, conforme você insere controles em um formulário eles recebem uma ordem para recebimento do foco, que é o valor da propriedade TabIndex. O primeiro controle receberá o valor 0 para TabIndex, o segundo 1, e assim por diante. Essa ordem pode ser mudada pelo programador, bastando alterar o valor de TabIndex de modo a ajustá-la. No caso de ser digitado para TabIndex um valor já pertencente a outro controle, o VB vai reorganizá-los automaticamente. TabIndex não pode ser alterada em tempo de execução.

Microsoft Visual Basic 627

Propriedade TabStop

Essa propriedade impede o acesso ao controle pela tecla Tab se estiver desligada. Isso acontece porque TabStop determina se o controle deve ou não atender à ordem de tabulação. Mas é importante ressaltar que TabStop não evita que o usuário acesse o controle usando o mouse. Os valores possíveis para TabStop são True (TabStop ligada) ou False (TabStop desligada).

Propriedade Default

Existem, nas aplicações para Windows, botões de comando que podem ser acionados pela tecla Enter, independente da ordem de tabulação, como os botões Ok das caixas de diálogo do Windows. Quem determina o acionamento do botão por Enter é a propriedade Default, que pode receber os valores True ou False. O objeto cuja propriedade Default for igual a True aparecerá com um contorno mais espesso, dando a indicação que, se Enter for pressionada, ele será acionado.

Método SetFocus

Para posicionar o foco em um determinado objeto em tempo de execução usamos o método SetFocus, sendo que somente formulários ou controles visíveis podem recebê-lo. A sintaxe é a seguinte:

objeto.SetFocus

Modificando a Calculadora

Vamos agora aplicar o que aprendemos: 1.Se ainda não o fez, abra a VB e o projeto da calculadora que iniciamos na lição anterior;

2. Execute o aplicativo e verifique se a ordem de tabulação corresponde à seguinte: txtNum1 = 0, txtNum2 = 1, cmdIgual = 2 e cmdLimpar = 3. Se necessário, altere as propriedades TabIndex dos controles para que fiquem de acordo com a ordem indicada;

3. No formulário da calculadora, selecione o botão cmdIgual e pressione a tecla Delete. Lembra-se que havia programação associada a ele? E agora que esse objeto apagado, para onde ela foi?

4. Abra a janela Código e procure a seção General do formulário. Note que a lista Proc agora contém, além da seção Declarations, a procedure cmdIgual_Click, que está lá como uma procedure geral. Uma procedure geral é aquela que pode ser chamada por qualquer outra procedure do formulário, ou seja, funciona como uma subrotina ou função. Ela não é executada por estar associada a um objeto e a partir de um evento, e sim quando chamada. Estudaremos isso melhor na próxima lição;

5.Agora altere o formulário da calculadora como no exemplo:

6.Altere as propriedades dos novos objetos seguindo a tabela:

Microsoft Visual Basic 628

ObjetoNomeOutras Propriedades = Valor

LabelLabel1Caption = Primeiro Número: LabelLabel2Caption = Segundo Número: Botão de ComandocmdMultiplicarStyle = 1 – Graphical

Picture = Misc\MISC20.ICO

Botão de ComandocmdDividirStyle = 1 – Graphical

Picture = Misc\MISC21.ICO

Botão de ComandocmdSomarStyle = 1 – Graphical

Picture = Misc\MISC18.ICO

Botão de ComandocmdSubtrairStyle = 1 – Graphical Picture = Misc\MISC19.ICO

7. Chame a janela Código e procure a procedure cmdIgual_Click (está na seção Declarations, lembra-se?) e altere seu nome para cmdMultiplicar_Click. Ao término da alteração, o código do antigo botão cmdIgual será associado ao botão cmdMultiplicar (veja nas caixas de combinação da janela Código);

8. Altere a procedure cmdMultiplicar para que fique de acordo com a codificação a seguir. Note que foi incluída na programação a declaração das variáveis como do tipo Single, e a função de conversão usada foi substituída pela CSng, que é apropriada a esse tipo:

Private Sub cmdMultiplicar_Click()

Dim vValor1 As Single Dim vValor2 As Single vValor1 = CSng(txtNum1.Text) vValor2 = CSng(txtNum2.Text) lblResultado.Caption = Format(vValor1 * vValor2, "###,##0.0") End Sub

9. Selecione todo o texto da procedure, menos o cabeçalho e End Sub, e copie para a área de transferência usando a opção Copy do menu Edit ou teclando Ctrl+C;

10. Abra a janela código no evento Click de outro botão e cole o trecho de programação usando a opção Paste do menu Edit ou então Ctrl+V;

1.Faça as alterações necessárias para que o botão funcione corretamente; 12.Repita esse procedimento para os outros operadores; 13.Grave seu trabalho e teste o aplicativo.

Microsoft Visual Basic 629

Lição 4: Estruturas de Controle

Assim como em outras linguagens, como C ou Pascal, o VB também possui estruturas de tomada de decisão e para controle de repetição (loops). Nessa lição aprenderemos a lidar com essas estruturas e também mais alguns recursos da linguagem.

Estruturas de Decisão

Estruturas de decisão são aquelas que permitem o desvio do fluxo do programa de acordo com uma condição. As estruturas de decisão do VB são similares às encontradas em outras linguagens:

Estrutura If...Then

Executa um comando ou uma série de comandos de acordo com uma condição. Se a condição não for verdadeira, os comandos serão ignorados e a execução do programa passa para o próximo comando após a estrutura. Essa estrutura pode ser escrita de duas maneiras:

If <condição> Then <comando>

If <condição> Then <comando1>

<comando2> ... <comandoN> End If

O que diferencia as duas estruturas é o número de comandos executados se <condição> for verdadeira. Na primeira somente um comando é executado, por isso esse comando pode vir logo após a palavra reservada Then, e o comando End If não é necessário. Exemplo:

If txtNome.Text = Empty Then MsgBox “Um nome deve ser digitado!”

Na segunda vários comandos devem ser executados se a condição for verdadeira, então cada comando deverá ser escrito em uma linha e o comando End If deve ser usado para fechar a estrutura. Veja dois exemplo:

If txtNome.Text = Empty Then

MsgBox “Um nome deve ser digitado!” End If

If vSaldoMédio > 1000 Then lblStatus.Caption = “Cliente Especial” vTaxaJuros = 0.015 End If

Estrutura If...Then...Else

Semelhante ao If...Then, porém contém um ou mais comandos para serem executados no caso da condição ser falsa, indicados pelo Else da sintaxe:

If <condição> Then <comandos para condição verdadeira>

Else <comandos para condição falsa> End If

A condição é testada, e, se for verdadeira, o primeiro conjunto de comandos será executado. Se for falsa, o segundo conjunto será executado. Exemplo:

If vSaldoMédio > 1000 Then lblStatus.Caption = “Cliente Especial” vTaxaJuros = 0.015

Else lblStatus.Caption = “Cliente Comum” vTaxaJuros = 0.018 End If

Microsoft Visual Basic 630

Estrutura Select Case

Quando houver a necessidade de se testar um número maior de situações o VB nos oferece a estrutura Select Case, que possibilita a construção de código mais eficiente e legível do que um encadeamento de If’s. Sua sintaxe é a seguinte:

Select Case <expressão>

Case <valor1> <comandos para valor1>

Case <valor2> <comandos para valor2> ... Case <valorN> <comandos para valorN> [Case Else]

[<comandos>] End Select

Valor1, valor2, valorN são os valores que a expressão pode assumir: se a expressão assumir o valor1 os comandos para o valor1 serão executados, se assumir valor2 os comandos para valor2 serão executados, e assim por diante. Se o valor assumido não for nenhum dos valores indicados, os comandos após o Case Else serão executados. É interessante destacar que Case Else é opcional. Exemplo:

Select Case vCodigoCliente

Case 1 lblStatus.Caption = “Cliente Preferencial” vTaxaJuros = 0.012

Case 2 lblStatus.Caption = “Cliente Especial” vTaxaJuros = 0.015

Case 3 lblStatus.Caption = “Cliente Comum” vTaxaJuros = 0.018

Case Else lblStatus.Caption = “Código Inválido” End Select

Estrutura If...ElseIf

Essa é uma variação do comando If que possui uma sintaxe muito parecida com o Select Case:

If <expressão1> Then <comandos para expressão1>

ElseIf <expressão2> Then <comandos para expressão2>

ElseIf <expressão3> Then <comandos para expressão3> ...

ElseIf <expressãoN> Then <comandos para expressãoN> [Else]

[<comandos>] End If

Por exemplo: o comando que codificamos com Select Case, se escrito com If...ElseIf, ficaria assim:

If vCodigoCliente = 1 Then lblStatus.Caption = “Cliente Preferencial” vTaxaJuros = 0.012

ElseIf vCodigoCliente = 2 Then lblStatus.Caption = “Cliente Especial” vTaxaJuros = 0.015

ElseIf vCodigoCliente = 3 Then lblStatus.Caption = “Cliente Comum” vTaxaJuros = 0.018

Else lblStatus.Caption = “Código Inválido” End Select

Microsoft Visual Basic 631

Comando With

Esse é um comando muito útil quando temos várias instruções que serão aplicadas a um mesmo objeto. Ele informa ao VB qual objeto deve ser considerado sempre que em um comando qualquer não houver nenhuma indicação da aplicação de uma propriedade, método ou campo. Sua sintaxe é:

With <objeto> <comandos a serem aplicado em objeto> End With

É mais fácil entender vendo um exemplo prático: suponhamos que você precisa aplicar uma série de comandos a uma caixa de texto:

txtTeste.Visible = True txtOutra.Visible = False txtTeste.FontName = “Arial” txtTeste.FontSize = 20 txtTeste.FontBold = True txtTeste.Text = “Isso é um teste.”

Com o comando With, você poderia escrever o mesmo trecho de programação da seguinte maneira:

With txtTeste

.Visible = True txtOutra.Visible = False .FontName = “Arial” .FontSize = 20 .FontBold = True .Text = “Isso é um teste.” End With

Todas as propriedades onde não foi indicada a caixa de texto txtTeste estão sendo aplicadas à ela da mesma maneira, devido ao comando With. Note que a instrução aplicada à txtOutra não mudou, mesmo estando dentro do conjunto de comandos contidos entre o With e o End With.

(Parte 4 de 7)

Comentários