VB - Usando a .NET Framework Class Library


Você sabia que pode usar muitas funcionalidades da .NET Framework Class Library 1.0 (FLC) no VB6 ? Sim , e olha e ponha funcionalidade nisto...

Na verdade embora as classes da FCL e os objetos COM sejam conceitualmente diferentes , eles podem interagir ; assim você pode criar um projeto no VB6 e usar alguma funcionalidade exposta pela FCL no seu projeto.

Apenas para você ter uma idéia a FCL fornece funcionalidades nas seguintes áreas:

Como muitas destas funcionalidades não estão disponíveis no VB6 , dependendo do caso , você tem a mão uma fonte de recursos que poderá ser usada para estender as capacidades do seu projeto VB6 ou suas aplicações ASP. E com um detalhe importante : A .NET Framework Class Library 1.0 (FCL) é grátis e você pode usar e distribuir. (Ficou animado agora ? )

Tudo bem , tudo bem, você esta doido para saber como usar tudo isto. Vamos então a parte prática...

Usando a FCL no VB6

A primeira coisa a fazer é fazer o download da NET Framework Class Library 1.0 e instalar no seu sistema. Sem isto você não pode continuar.

Feito a instalação da FCL 1.0 vamos ao nosso primeiro projeto:

Este arquivo é um type library para uma das .NET assemblies. Agora você deverá ver a referência "System.dll" aparecer na sua lista de referências dando assim acesso as funcionalidades da FLC.

A partir de agora você poderá usar algumas das classes da FCL no seu projeto VB. Vamos lá...

No evento Click do botão de comando insira o seguinte código :

Private Sub Command1_Click()

Dim webDownload As System.WebClient

Set webDownload = New System.WebClient

webDownload.downloadFile "http://www.macoratti.net/maco1b.gif", App.Path & "\maco1b.gif"

Set Image1.Picture = LoadPicture(App.Path & "\maco1b.gif")

End Sub

Executando a aplicação você obterá a imagem exibida no seu controle image.

Pronto você acabou de fazer o download de um arquivo na web usando classes da FCL.

Agora vamos a outro exemplo onde iremos usar uma lista ordenada. Como você já deve saber o VB não possui nada parecido.

Vamos criar uma aplicação VB6 que irá acessar uma lista de arquivos e a seguir vamos exibir a relação ordenada por nome. Neste projeto teremos que ter uma referência a biblioteca Microsoft Scripting Runtime para poder ter acesso aos arquivos e também uma referência as classes da FCL que nos permitirão usar a lista ordenada : “C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\mscorlib.tlb”

Private Sub Command2_Click()

' usando o FileSystemObject para acessar a pasta desejada
Dim fso As Scripting.FileSystemObject
Set fso = New Scripting.FileSystemObject
Dim f As Scripting.Folder
Set f = fso.GetFolder("c:\windows\system32")

' Cria uma instância de uma  SortedList para armazenar os nomes dos arquivos ordenados
Dim sa As mscorlib.SortedList
Set sa = New sor

' percorre todos os arquivos e os inclui na SortedList
Dim fi As Scripting.File
For Each fi In f.Files
    sa.Add fi.Name, fi.Size
Next

' Percorre a lista e inclui itens no listbox ordenados pela chave (nome)
Dim i As Integer
For i = 0 To sa.Count - 1
    List1.AddItem (sa.getkey(i))
Next

End Sub

Neste código estamos usando as funcionalidades de uma SortedList , como você pode ver criamos uma instância de uma SortedList e a usamos como um objeto COM, embora ela seja uma classe .NET

Se você fosse fazer a mesma coisa usando o VB.NET , o código seria:

Dim sa As New SortedList
Dim di As New DirectoryInfo("c:\windows\system32")

For Each fi As FileInfo In di.GetFiles()
    sa.Add(fi.Name, fi.Length)
Next

For Each fileName As String In sa.Keys
   ListBox1.Items.Add(fileName)
Next

Neste código é usado a mesma classe SortedList só que usando o ambiente nativo VB.NET onde existem muitos classes que facilitam o acesso aos arquivos.

Atenção ! Se o seu VB não estiver atualizado e corretamente configurado e instalado poderá ocorrer o erro  : Run Time Erro '429'.

Artigo adaptado do original no site da MSDN

Eu sei é apenas VB , mas eu gosto...


José Carlos Macoratti