90 Dicas de Visual Basic



Baixar 426,91 Kb.
Página4/14
Encontro03.05.2017
Tamanho426,91 Kb.
1   2   3   4   5   6   7   8   9   ...   14

16 - VB3/VB4 - Convertendo Identificadores em Rótulos e Cabeçalhos


Programadores possuem o hábito de criar identificadores (nomes de variáveis, por exemplo) por fusão de palavras como SobreNome ou CargoAnterior. É possível usar alguns destes nomes para se criar labels (rótulos) e descrições diversas. A função abaixo insere espaços, "quebrando" os identificadores a cada inicial maiúscula. Assim, CargoAnterior será convertido para Cargo Anterior.

Function SpaceName (src As String) As String

Dim i as Integer, tgt As String

tgt = Left$(src,1)

For i = 2 to Len(src)

Select Case Mid$(src, i-1, 1

Case "a" to "z"

Select Case Mid$ (src, i, 1)

Case "A" to "Z"

tgt = tgt & " "

End Select

End Select

tgt = tgt & Mid$(src, i, 1)

Next i


SpaceName = tgt

End Function



Por Pat Dooley*

17 - VB3/VB4 - Alterações com Mid


Você provavelmente já conhece a função e o comando Mid, que retorna uma substring com um número específico de caracteres, ou seja, uma parte da string usada como parâmetro. Mas, você sabe como usar o Mid para substituir caracteres no meio de uma string? O Mid é uma pequena excentricidade do VB, pois, altera um de seus próprios argumentos. Mas, isto economiza uma série de instruções de concatenação, observe:

Dim mystring as String

mystring = "SOME STRING"

If Mid(mystring, 2, 1) = "O" Then

Mid(mystring, 2, 1) = "A" ' substituindo caracter

End If


Por William Storage*

18 - VB3/VB4 - Quando usar SendKeys


A função SendKeys (que simula o aperto de teclas) adiciona ótimos recursos de "intervenção" do programador na operação do sistema. As teclas podem ser enviadas para um form ou controle (neste caso o controle deverá ter o foco). A rotina abaixo simplifica o processo.

Sub SendKeyTo (KeyValue as String, cCnt as Control)

If cCnt.Enabled Then cCnt.SetFocus

SendKeys KeyValue

End Sub

Por Saji Varghese, aperf. por Charles A. Müller

19 - VB3/VB4 - Resolução do Monitor


Há uma forma simples de se obter a resolução de um monitor de vídeo usando uma API.

'declarations

Declare Function GetSystemMetrics Lib "User" (ByVal nIndex As Integer) as Integer

'...


Sub Form_Resize( )

dim xRes As Integer

dim yRes As Integer

xRes = GetSystemMetrics(0)

yRes = GetSystemMetrics(1)
If xRes < 1024 and yRes < 768 Then

'adicione seu código de controle de dimensões

End If

End Sub


Por Sanjay Mawalkar*

20 - VB3/VB4 - Fechando todos os forms


Sub UnloadAll ( )

Dim f As Integer

f = Forms.Count

Do While f > 0

Unload Forms(f-1)

If f = Forms.Count Then Exit Do

f = f - 1

Loop


End Sub

Por Denis Basaric*

21 - VB4 - Subclasse para ChDir


Se o seu diretório de aplicação é D:\OldDir, a chamada ChDir(C:\NewDir) irá alterar o drive corrente para o diretório NewDir. Mas o diretório da aplicação continuará sendo D:\OldDir. Causa: o ChDir altera o diretório na unidade diferente citada e não muda o da aplicação. Esta rotina, de classe subdefinida (subclassed), melhora a alteração de drives:

Sub ChDir(Path As String)

Dim TargetDrive As String

If Mid(Path, 2, 2) = ":\" Then

TargetDrive = Left(Path, 3)

If TargetDrive <> Left(CurDir, 3) Then

ChDrive TargetDrive

End If

End If


'chama a função ChDir do VB

VBA.ChDir Path

End Sub

Por Bruce Hamilton, Centric Development*

22 - VB3/VB4 - Graduando Cores


Este é um meio fácil para pintar o fundo de um form, com efeito de uma "cortina degradê", isto é, da cor mais clara no topo, para a cor mais escura na base. Para especificar a cor usada passe valores true ou false para os parâmetros Vermelho, Verde ou Azul. Combinações de cores (true) formam outras cores como roxo, amarelo, cinza etc.

O código abaixo cria o efeito com a cor azul.

FadeForm Me, False, False, True

'qualform, vermelho?,verde?, azul?

Já este cria o efeito com a cor ciano (mistura do azul com verde)

FadeForm Me, False, True, True

'qualform, vermelho?,verde?, azul?

O código da rotina segue abaixo



Sub FadeForm (frm As Form, pRed As Integer, pGreen As Integer, pBlue As Integer)

Dim SaveScale As Integer, SaveStyle As Integer, SaveDraw As Integer

Dim y As Long, x As Long, i As Long, J As Long, pixels As Long

'salvar as configurações atuais do form

SaveScale = frm.ScaleMode

SaveStyle = frm.DrawStyle

SaveDraw = frm.AutoRedraw

'pintar a tela

frm.ScaleMode = 3

pixels = Screen.Height / Screen.TwipsPerPixelY

x = pixels / 64 + .5

frm.DrawStyle = 5

frm.AutoRedraw = True

For J = 0 To pixels Step x

y = 240 - 245 * J / pixels

If y < 0 Then y = 0

frm.Line (-2, J - 2)-(Screen.Width + 2, J + x + 3), RGB(-pRed * y, -pGreen * y, -pBlue * y), BF

Next J


'restaura configurações do form

frm.ScaleMode = SaveScale

frm.DrawStyle = SaveStyle

frm.AutoRedraw = SaveDraw



End Sub

Por Timothy L. Birch*

23 - VB3/VB4 - Arquivo Existe?


Uma das formas de testar se um arquivo específico existe é utilizando a função Dir$, com a identificação completa do caminho do arquivo. Dir$ irá retornar o exato nome do arquivo (se existir) ou um nulo, se não existir. Por exemplo:

If Dir$("C:\MYDIR\MYFILE.TXT") <> "" Then

'o arquivo existe

Else


'arquivo não encontrado

End If


Por Chuong Van Huynh*


1   2   3   4   5   6   7   8   9   ...   14


©livred.info 2017
enviar mensagem

    Página principal