Option Explicit On
Public Class frmPruebaTraza
Private Sub btnBoton1_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles btnBoton1.Click
Debug.Print( _
System.Reflection.MethodBase.GetCurrentMethod().Name _
)
End Sub
Private Sub btnBoton2_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles btnBoton2.Click
Debug.Print( _
System.Reflection.MethodBase.GetCurrentMethod().Name _
)
End Sub
Private Sub btnBoton3_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles btnBoton3.Click
Debug.Print( _
System.Reflection.MethodBase.GetCurrentMethod().Name _
)
End Sub
End Class
Código del formulario (con la clase Traza)[]
Option Explicit On
Public Class frmPruebaTraza
Private MiTraza As New Traza
Private Sub btnBoton1_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles btnBoton1.Click
MiTraza.Mostrar( _
System.Reflection.MethodBase.GetCurrentMethod().Name _
)
End Sub
Private Sub btnBoton2_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles btnBoton2.Click
MiTraza.Mostrar( _
System.Reflection.MethodBase.GetCurrentMethod().Name _
)
End Sub
Private Sub btnBoton3_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles btnBoton3.Click
MiTraza.Mostrar( _
System.Reflection.MethodBase.GetCurrentMethod().Name _
)
End Sub
Private Sub frmPruebaTraza_Load( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles MyBase.Load
radNinguna.Checked = True
End Sub
Private Sub radNinguna_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles radNinguna.Click
MiTraza.Tipo = Traza.TipoTraza.Ninguna
radNinguna.Checked = True
End Sub
Private Sub radInmediato_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles radInmediato.Click
MiTraza.Tipo = Traza.TipoTraza.Inmediato
radInmediato.Checked = True
End Sub
Private Sub radVentana_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles radVentana.Click
MiTraza.Tipo = Traza.TipoTraza.Ventana
radVentana.Checked = True
End Sub
Private Sub radArchivo_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles radArchivo.Click
MiTraza.Tipo = Traza.TipoTraza.Archivo
radArchivo.Checked = True
End Sub
End Class
Código de la clase Traza[]
Option Explicit On
Public Class Traza
Public Enum TipoTraza As Byte
Ninguna = 0
Inmediato = 1
Ventana = 2
Archivo = 3
End Enum
Private trzTipo As TipoTraza = TipoTraza.Ninguna
Private sTraza As String
Private frmMiTraza As frmTraza
Protected Overrides Sub Finalize()
Select Case trzTipo
Case TipoTraza.Inmediato
CerrarInmediato()
Case TipoTraza.Ventana
CerrarVentana()
Case TipoTraza.Archivo
CerrarArchivo()
End Select
MyBase.Finalize()
End Sub
Public Property Tipo() As TipoTraza
Get
Tipo = trzTipo
End Get
Set(ByVal QueTipoTraza As TipoTraza)
Select Case QueTipoTraza
Case TipoTraza.Ninguna
Select Case trzTipo
Case TipoTraza.Inmediato
CerrarInmediato()
Case TipoTraza.Ventana
CerrarVentana()
Case TipoTraza.Archivo
CerrarArchivo()
End Select
Case TipoTraza.Inmediato
Select Case trzTipo
Case TipoTraza.Ventana
CerrarVentana()
Case TipoTraza.Archivo
CerrarArchivo()
End Select
AbrirInmediato()
Case TipoTraza.Ventana
Select Case trzTipo
Case TipoTraza.Inmediato
CerrarInmediato()
Case TipoTraza.Archivo
CerrarArchivo()
End Select
AbrirVentana()
Case TipoTraza.Archivo
Select Case trzTipo
Case TipoTraza.Inmediato
CerrarInmediato()
Case TipoTraza.Ventana
CerrarVentana()
End Select
AbrirArchivo()
End Select
trzTipo = QueTipoTraza
End Set
End Property
Public Sub Mostrar(ByVal Que As Object)
If trzTipo = TipoTraza.Ninguna Then Exit Sub
Select Case trzTipo
Case TipoTraza.Inmediato
MostrarInmediato(Que)
Case TipoTraza.Ventana
MostrarVentana(Que)
Case TipoTraza.Archivo
MostrarArchivo(Que)
End Select
End Sub
Private Sub MostrarInmediato(ByVal Que As Object)
Debug.Print(Que)
End Sub
Private Sub MostrarVentana(ByVal Que As Object)
With frmMiTraza
.txtTraza.Text &= Que & vbCrLf
.txtTraza.SelectionStart = Len(.txtTraza.Text)
End With
End Sub
Private Sub MostrarArchivo(ByVal Que As Object)
My.Computer.FileSystem.WriteAllText( _
sTraza, Que & vbCrLf, True _
)
End Sub
Private Sub AbrirInmediato()
trzTipo = TipoTraza.Inmediato
InicioTraza()
End Sub
Private Sub AbrirVentana()
trzTipo = TipoTraza.Ventana
frmMiTraza = New frmTraza
frmMiTraza.Show()
InicioTraza()
End Sub
Private Sub AbrirArchivo()
trzTipo = TipoTraza.Archivo
sTraza = Application.StartupPath
If Right(sTraza, 1) <> "\" Then
sTraza &= "\"
End If
sTraza &= "traza.txt"
InicioTraza()
End Sub
Private Sub CerrarInmediato()
FinalTraza()
End Sub
Private Sub CerrarVentana()
FinalTraza()
frmMiTraza.Close()
End Sub
Private Sub CerrarArchivo()
FinalTraza()
End Sub
Private Sub InicioTraza()
Dim sMensaje As String = ""
Dim sBarra As String = ""
Dim i As Integer = 0
sMensaje = "Inicio traza de " & Application.ExecutablePath
For i = 1 To Len(sMensaje)
sBarra &= "-"
Next i
Mostrar(sBarra)
Mostrar(sMensaje)
Mostrar("Fecha: " & DateTime.Now.ToString("dd-MM-yyyy"))
Mostrar("Hora : " & DateTime.Now.ToString("HH:mm:ss"))
Mostrar(sBarra)
End Sub
Private Sub FinalTraza()
Dim sMensaje As String = ""
Dim sBarra As String = ""
Dim i As Integer = 0
sMensaje = "Final traza de " & Application.ExecutablePath
For i = 1 To Len(sMensaje)
sBarra &= "-"
Next i
Mostrar(sBarra)
Mostrar(sMensaje)
Mostrar("Fecha: " & DateTime.Now.ToString("dd-MM-yyyy"))
Mostrar("Hora : " & DateTime.Now.ToString("HH:mm:ss"))
Mostrar(sBarra)
End Sub
End Class