90 Dicas de Visual Basic



Baixar 426,91 Kb.
Página10/14
Encontro03.05.2017
Tamanho426,91 Kb.
1   ...   6   7   8   9   10   11   12   13   14

48 - VB3 - Mantendo constantes


Melhore o uso do arquivo CONSTANT.TXT. Para um novo projeto, copie o arquivo CONSTANT.TXT para MYCONST.TXT (para o diretório do seu projeto). Inclua MYCONST.TXT no seu projeto (menu FileAdd File). Substitua (menu EditReplace ou CTRL + R) todas as expressões Global por ' Global neste arquivo.

Quando for necessária uma nova constante, basta verificar se a mesma já foi definida pela Microsoft e remover o a ' do comentário (reverter a substituição).



Por Stan Mlynek*

49 - VB3/VB4 - Inconsistência no caminho da aplicação (app.path)


Esteja atento quando usar a propriedade path (caminho) do objeto Application (App, aplicação). Se seu executável está rodando na raiz de um drive, App.Path retornará o nome (letra:) na unidade e uma barra (algo como C:\). Apareceu quando o executável está em um subdiretório, a barra final não é acrescentada (C:\SUBDIR). Para testar e acrescentar a barra, use o código abaixo que, retornará C:\SUBDIR\.

MyPath = App.Path

If Not Right(MyPath, 1) = Chr(92) then

'chr 92 = "\"

MyPath = MyPath & Chr(92)

End If


Por Clint Walker*

50 - VB3/VB4 - Bloqueando funções Copiar e Colar em caixas de texto


As funções Copiar (CTRL+C) e Colar (CTRL+V) estão sempre disponíveis para text boxes, mas e se você não desejar que estas funções funcionem? Você deve supor que o evento KeyDown consegue detectar CTR+C e CTRL+V, mas não detecta. No evento KeyPress, estas teclas podem ser capturadas:

Sub Text1_KeyPress (KeyAscii As Integer)

If KeyAscii = 3 Or KeyAscii = 22 Then KeyAscii = 0

'CTRL+C = 3 e CTRL+V = 22, valores não constantes na tabela ANSI,

'geram estas combinações. Recurso não documentado



End Sub

Por Pedro Velazquez Dávila*

51 - VB3/VB4 - Digitação em Grid


O controle Grid é uma tabela de exibição de dados, que não permite a digitação direta de valores em suas células (não estou falando do DBGrid). É possível "simular" a aceitação de teclas através de código. Basta um clique de mouse na célula e digitar. O programador deve ter incluído as rotinas abaixo nos eventos KeyDown e KeyPress.

Sub Grid1_KeyDown (KeyCode As Integer, Shift As Integer)

Select Case KeyCode

Case &H8 'BACKSPACE

If Len(Grid1.Text) > 0 Then

Grid1.Text = Left(Grid1.Text, (Len(Grid1.Text) - 1))

End If


Case &H2E 'DEL

Grid1.Text = ""

End Select

End Sub

Sub Grid1_KeyPress (keyascii As Integer)

Select Case keyascii

Case Is <> 8, 9, 10, 13'não imprimíveis

Grid1.Text = Grid1.Text & Chr(keyascii)

End Select

End Sub

No evento KeyPress todos os caracteres imprimíveis são acrescentados ao texto da célula ativa do Grid. O evento KeyDown apaga o último caracter com BACKSPACE ou o texto inteiro com a tecla DEL.



Por Charles A. Müller.

52 - VB3/VB4 - O Caracter ENTER


Ele nunca aparece, mas existe. No Word é representado por um ¶, nas caixas de texto do VB aparece um  (caracter não imprimível). Mas como aceitar e gerar este caracter?

  1. No evento KeyPress, o caracter digitado (parâmetro KeyAscii) vale 10 ou 13 (os dois valores do ENTER na tabela de caracteres ANSI).

  2. Em quaisquer consistências (como TextBox_Change ou análise de variáveis string) a função Asc retornará 10 ou 13.

Texto = Left(Texto, (Len(Texto) - 1))

If Asc(texto) = 10 or Asc(texto) = 13 then msgbox "Foi digitado um ENTER"



  1. Numa textbox, é preciso gerar (via função chr) o caracter 10 mais o caracter 13.

text1.Text = "linha 1"

text1.Text = text1.Text & Chr$(13) & Chr$(10) & "linha 2"

text1.Text = text1.Text & Chr$(13) & Chr$(10)

text1.Text = text1.Text & Chr$(13) & Chr$(10) & "linha 4"



  1. Numa MsgBox, basta gerar o caracter 13.

Dim vmsg As String

vmsg = "linha 1"

vmsg = vmsg & Chr$(13) & "linha 2"

vmsg = vmsg & Chr$(13)

vmsg = vmsg & Chr$(13) & "linha 4"

MsgBox vmsg, 0, "texto 2"



Por Charles A. Müller.

53 - VB3/VB4 - Limpando Combos Read-Only


Numa ComboBox com a propriedade Style = 2 (dropdown list), a propriedade Text é somente-para-leitura. Isto impede limpeza e troca de conteúdo por esta propriedade, em construções como estas:

Combo1.text = "" 'ou

Combo1.text = "novo conteúdo"

A solução é limpar a combo com o método clear e adicionar o valor novo.

Combo1.Clear

Combo1.AddItem "novo conteúdo "



Por Charles A. Müller.

54 - VB3/VB4 - Brancos no controle Masked Edit Box


O controle MS Masked Edit apenas aceita entrada de dados dentro da máscara formatada (mask). Isto impede o programador de limpar a text do controle diretamente (masked1.text = ""), pois, o caracter espaço (ou nulo) pode não se encaixar no formato da máscara. Por exemplo, algumas possuem o formato # (aceitam somente números). Logo, o "" não seria aceito. Este problema é resolvido por este código:

vTemp = masked1.mask

masked1.mask = ""

masked1.text = ""

masked.mask = vTemp

Removendo a máscara é possível limpar o texto. Depois, basta devolver a máscara original ao controle. Uso isto no evento Data1_ValidationError quando adiciono um novo registro.



Por Scott Wallace*

55 - VB3/VB4 - Forçando caracteres maiúsculos


Para facilitar a digitação de maiúsculos, independente do pressionamento de CAPS LOCK, converta cada caracter no evento KeyPress.

Private Sub Form_KeyPress (KeyAscii as Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub


Para que esta rotina funcione para todos os campos do form, altere a propriedade KeyPreview do mesmo para true.

Balamurali Balaji*


1   ...   6   7   8   9   10   11   12   13   14


©livred.info 2017
enviar mensagem

    Página principal