• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

NuGuN

[VB6] Templates & Class Module - How To

2 mensagens neste tópico

Boas, desde já quero agradecer ao Tyagus por disponibilizar as funções por ele desenvolvidas (http://www.portugal-a-programar.pt/index.php?showtopic=3578).

Parto do principio do que o leitor sabo o que é e como funciona uma Class Module

Neste pequeno tut vou esplicar como se pode fazer um Template no VB6 neste caso com Class Module's. Eu apenas vou esplicar como fazer com Class Module's mas, tambem dá para fazer com Forms, Projects, etc. O funcionamento é o mesmo, apenas se alteram os directórios.

Para quem não sabe o que é um Template em VB6, passo a explicar. Quando abrem o VB6 aparece aquela pequena janela com vários tipos de projecto, issu são Template's. Quando adicionam uma nova Form ou um novo Module ao projecto, tambem vos aparece essa janela com os vários tipos de Forms ou de Modules, issu tambem são Templates.

Istu tem bastante utilidade, imaginem que nos vossos programas precisão constantemente de trabalhar com ficheiros(Copiar, apagar, mover, etc..).        Sem a utilização de uma Class Module teriam que escrever o código a cada vez que precisassem dele, utilizando uma Class Module o mesmo não sucede.

Vamos ao que intereça  :)

  • Abrimos um novo projecto(Standard Project).
  • Remove-se a Form1 que o VB cria automaticamente
  • Adiciona-se uma Class Module
  • No nome da Class Module Meter clsFuncitons

Dentro da nova Class Module insiram as funções a utilizar neste caso são as que o Tyagus disponibilizou, e com umas pequenas alterações minhas :

Option Explicit


Public Sub SelectFuntion(Flag, Dir1 As String, Dir2 As String, Options As Boolean)
Select Case Flag
Case "MakeDir"
    MakeDir Dir1
Case "DeleteDir"
    DeleteDir Dir1
Case "DelFilesInDir"
    DelFilesInDir Dir1, Options
Case "MoveFile"
    MoveFile Dir1, Dir2
Case "CopyFile"
    CopyFile Dir1, Dir2
Case "DeleteFile"
    DeleteFile Dir1
Case "ExecuteFile"
    ExecuteFile Dir1
End Select
End Sub


Private Sub MakeDir(DirPath As String)
'Criar directorio
On Error GoTo error
MkDir DirPath$
Exit Sub
error:  MsgBox Err.Description, vbExclamation, "Erro"
End Sub

Private Sub DeleteDir(DirPath As String)
'Apagar um directorio
On Error GoTo error
RmDir DirPath$
Exit Sub
error:  MsgBox Err.Description, vbExclamation, "Erro"
End Sub

Private Sub DelFilesInDir(DirPath As String, DelDir As Boolean)
'Apagar todos os ficheiros de um directorio e (opcional) também apagar o directorio
On Error GoTo error
Kill DirPath$ & "*.*"
If DelDir = True Then
RmDir DirPath$
End If
Exit Sub
error:  MsgBox Err.Description, vbExclamation, "Erro"
End Sub

Private Sub MoveFile(StartPath As String, EndPath As String)
'Mover um ficheiro
On Error GoTo error
FileCopy StartPath$, EndPath$
Kill StartPath$
Exit Sub
error:  MsgBox Err.Description, vbExclamation, "Erro"
End Sub

Private Sub CopyFile(StartPath As String, EndPath As String)
'Copiar um ficheiro
On Error GoTo error
FileCopy StartPath$, EndPath$
Exit Sub
error:  MsgBox Err.Description, vbExclamation, "Erro"
End Sub

Private Sub DeleteFile(FilePath As String)
'Apagar um ficheiro
On Error GoTo error
Kill FilePath$
Exit Sub
error:  MsgBox Err.Description, vbExclamation, "Erro"
End Sub

Private Sub ExecuteFile(FilePath As String)
'Executar um ficheiro
On Error GoTo error
Dim ret As Long
ret = Shell("rundll32.exe url.dll,FileProtocolHandler " & (FilePath))
Exit Sub
error:  MsgBox Err.Description, vbExclamation, "Erro"
End Sub

  • Em seguida guardem APENAS A Class Module(File->Save clsFunctions As) neste directório Directório_Do_Visual Studio\Microsoft Visual Studio\VB98\Template\Classes. E ja temos o Template da Class Module feito  :)

Agora vamos-lhe dar uzo  :)

  • Abrir um novo projecto no VB6(Standard EXE)
  • Adicionar uma nova Class Module, e se tudo estiver bem, na janela que nos mostra os varios tipos de Class Module's vai nos aparecer a que criamos(clsFuntions)
  • Adiciona mula ao nosso Projecto

Para utilizar esta Class Module basta a seguinte linha de código(sem contar com a declaração das variaveis que são mais 2 linhas):

varFuntions.SelectFuntion cmbFlags.Text, txtDir1.Text, txtDir2.Text, varOptions

Onde:

varFuntions é a variavel que se declarou As clsFunction

cmbFlags.Text é a Flag a utilizar ou seja, serve para escolher a função(copiar um ficheiro, criar um directório, etc..)

txtDir1.Text e txtDir2.Text são dois directórios utilizados para licalizar os ficheiros ou pastas a ciar, apagar, mover ou copiar.

varOptions serve apenas para a função DelFilesInDir e que dependendo so seu valor apaga ou não o directório onde se encontram os ficheiros.

E é só istu, podia estar melhor organizado mas eu tambem não tenho muito geito  :)

Vou deixar o programa completo para analizarem melhor :D

Alguma duvida.. é só perguntarem  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Muito bom...

Bom trabalho... assim fica muito mais completa...

:thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora