90 Dicas de Visual Basic



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

56 - VB3/VB4 - Pinte meu mundo ... nas cores padrão!


Apenas após executar o último "make EXE", troque seu esquema de cores e veja quantos fundos de cores você possui fora do padrão (escolhido pelo usuário final, via Painel de Controle). Infelizmente, muitos controles customizados (VBX/OCX) pecam neste detalhe importante.

Através do Painel de Controle, tente o esquema "deserto" no Windows 95, ou "verão" no Windows 3.1x, ou ainda, crie um outro esquema horroroso. Isto o ajudará a testar suas aplicações de cores.

O VB4 dispõe de 24 cores de sistema como constantes. No VB Help, procure por "Color Constants" ou "VBTranslateColor". Copie o valor hexadecimal para a propriedade de cor de seu objeto se ele foi erroneamente redefinido (fora do padrão). Também é possível copiar os valores de controles que estejam corretos, mas cuidado, a face do botão por exemplo, pode não ser cinza.

Por Clint Walker*

Nota do VBPJ*: Na nova paleta de cores do VB4, há um botão Default, que altera as cores do objeto selecionado para o padrão do Windows. Verifique se a propriedade Appearance é 3D para obter melhores resultados.

Notas do Fórum Access (Charles A. Müller): 1) É uma regrinha antiga. Nunca mude as cores que, o usuário, que é o cliente, define externamente (no Windows), a menos que isto traga utilidade. Nestes casos, esteja atento para o significado das cores e sua harmonia (afinal, penteadeiras de camarim na tela não são desejáveis). 2) No VB3, existem 19 cores de sistema nas constantes de CONSTANT.TXT. 3) Observamos (no CCE e VBA) que o VB5 terá, em sua paleta de cores, uma lista de alteração automática para as cores padrão (além do botão default).

57 - VB3 - Desmarcar todos os itens de uma lista


Uma forma rápida de retirar qualquer seleção de uma listbox é:

list1.selected (-1) = False

Isto não funciona em VB4.

Por John Müller*

58 - VB4 - Ordenando Colunas da ListView


ao seu controle ListView (32 bits) a funcionalidade de ordenação do Windows 95 Explorer. Este código ordena a lista por qualquer coluna. Se a lista já estiver ordenada por esta coluna, a ordem será invertida.

Private Sub ListView1_ColumnClick _

(ByBal ColumnHeader As ColumnHeader)

Whith ListView1

If (ColumnHeader.Index -1) = .SortKey Then

.SortOrder = (.SortOrder + 1) Mod 2

Else


.Sorted = False

.SortOrder = 0

.SortKey = ColumnHeader - 1

.Sorted = True

End IF

End With


End Sub

Por Joe Tuttle*

59 - VB4 - Problemas com o Print


O código abaixo funciona em VB3:

Cls


Print Spc(10); "Informe seu nome:";

currentX = 0

currentY = currentY +1

Print Spc(10); "Informe seu nome:";

Este código falha em VB4. Retirando o último ponto-e-vírgula do primeiro print:

Print Spc(10); "Informe seu nome:"

Acrescente Debug. antes de Print para testar:

Cls


Debug.Print Spc(10); "Informe seu nome:"

currentX = 0

currentY = currentY +1

Debug.Print Spc(10); "Informe seu nome:";

Ou mude o comando para:

Print Space(10); "Informe seu nome:";



Por David Ferber*

60 - VB4 - Use o Code Profiler para depuração (debug)


Algumas vezes, um erro de execução se manifesta apenas após a criação de um EXE e não em tempo de debug. O add-in Code Profiler poderá ajudá-lo.

  1. Faça uma cópia do seu fonte.

  2. Selecione o add-in Code Profiler.

  3. Selecione o(s) arquivo(s) de código a serem analisados.

  4. Selecione a opção Line Hit Count.

  5. Selecione o botão Add Profiler Code.

  6. Compile (make EXE) o programa (MYAPP.EXE).

  7. Execute o seu código com erro.

  8. Volte ao Code Profiler e selecione View Results no menu File.

Veja a última linha que foi executada ao ocorrer o erro. Você terá que executar seu código em modo debug enquanto olha os resultados do Code Profiler.

Por Rich Spencer*

61 - VB3/VB4 - Onde está o Beep?


Este código elimina o beep quando se tecla ENTER ou TAB em uma text box que atingiu seu número máximo de caracteres.

Sub Form_KeyPress (keyascii as integer)

If KeyAscii = 13 or KeyAscii = 9 Then

KeyAscii = 0

End If


End Sub

Por Lonnie Brioadnax, Michael Ottomanelli e Preston Werntz*

62 - VB3/VB4 - TAB automático para o próximo campo


Esta dica é útil para desenvolvimento de aplicações VB com a forma de edição de terminais 3270 (IBM Mainframe). Quando o usuário termina de preencher um campo em um terminal 3270, o foco é imediatamente transmitido para o próximo campo.

Sub Text1.KeyUp (keycode as integer, shift as integer)

If keycode > 47 and keycode < 123 then

If Len(Me.ActiveControl.Text) = (Me.ActiveControl.MaxLenght) then

Sendkeys "{TAB}"

End If


End If

End Sub


Por Lonnie Brioadnax, Michael Ottomanelli e Preston Werntz*

63 - VB3/VB4 - Simplificando a condição de um IF


Quando você escreve um comando IF (Se) assim:

If Category = "CM" or Category = "M2" or Category = "P1" or Category = "ZZ" then

ProcesseEmpregado

End If


Poderia simplificar para:

Dim ValidValues as string

ValidValues = "CM M2 P1 ZZ"

If (InStr(1, ValidValues, Category)) > 0 then

ProcesseEmpregado

End If


Isto torna o código mais rápido e mais fácil de ser entendido. Note que separei os valores com " " para não aparecerem strings como "CMM2P1ZZ"; você poderá utilizar espaços ou outros separadores como vírgulas, ponto-e-vírgulas etc.

Por Jaspreet Singh*

Notas de Redação (Charles A. Müller):

  1. Este teste ainda aceitará "C", " P", "2 P" e outras expressões inválidas, por conterem o separador ou terem tamanho inválido. Para corrigir esta falha, basta usar espaço (apenas) como separador e testar o tamanho da categoria.

Category = trim(Category)

If (InStr(1, ValidValues, Category)) > 0 and Len(Category) = 2 Then

'...


  1. Este truque pode ser usado para várias validações, como ValidValues = "abcdefghijlmnopqrstuvxz".

  2. Outra forma, ainda mais fácil, é criar um pequeno Select Case, separando os valores válidos por vírgulas:

Select Case Category

Case "CM", "M2", "P1", "ZZ"

ProcesseEmpregado

End Select




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


©livred.info 2017
enviar mensagem

    Página principal