Manchmal hat man das Problem, dass man beim Testen seiner Anwendung auf einem Fremdrechner (also evtl. beim Kunden) nicht einfach an Debug-Informationen kommt. Um das zu ermöglichen/vereinfachen habe ich folgende Vorgehensweise entwickelt. Ich habe meiner Anwendung eine Form zugefügt "myDebug.frm". Auf ihr befinden sich
Dazu hier der Code für die Form und Controls: Public Class myDebug Private Sub myDebug_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.Text = "Debuggen von: " + My.Application.Info.AssemblyName ListBox1.BackColor = setColorBrightness(ToolStrip1.BackColor, 24) ListBox1.Items.Clear() End Sub Private Sub ListBox1_MouseDown(sender As Object, e As MouseEventArgs) _ Handles ListBox1.MouseDown If MOUSEEVENTF_RIGHTDOWN Then ListBox1.SelectedIndex = -1 End Sub Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) _ Handles ToolStripButton1.Click ListBox1.Items.Clear() End Sub Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) _ Handles ToolStripButton2.Click Dim t As String, i As Short If ListBox1.Items.Count = 0 Then Exit Sub If ListBox1.SelectedItems.Count > 0 Then For i = 0 To ListBox1.SelectedItems.Count - 1 t += ListBox1.SelectedItems(i) + vbCrLf Next Else For i = 0 To ListBox1.Items.Count - 1 t += ListBox1.Items(i) + vbCrLf Next End If My.Computer.Clipboard.SetText(t) End Sub End Class Für das Eintragen von Debug-Informationen in die Listbox gibt es die Funktion "debugForm" (in einem Modul unterbringen): ''' <summary> ''' Funktion zum Eintragen von Debug-Informationen ''' </summary> ''' <param name="theVar">ein Variablenwert als String</param> ''' <param name="addNo">soll DebugInfo in neue Zeile oder an vorhergehende angehängt werden</param> Public Sub debugForm(theVar As String, Optional addNo As Boolean = False) If addNo Then myDebug.ListBox1.Items(dhDebug.ListBox1.Items.Count - 1) += If(IsNothing(theVar), "~~~", theVar) Else myDebug.ListBox1.Items.Add(If(IsNothing(theVar), "~~~", theVar)) End If End Sub und als Zusatzfunktion "WhoCalledMe", die dazu dient, die Prozedur zu ermitteln, in der der Aufruf von "debugForm" erfolgt: ''' <summary> ''' Funktion zum Ermitteln des namens der aufrufenden Prozedur ''' </summary> Public Function WhoCalledMe() As String Dim st As StackTrace = New StackTrace() Dim sf As StackFrame = st.GetFrame(1) Dim mb As MethodBase = sf.GetMethod() ' Console.WriteLine("I was called by: " & mb.Name) ' Displays "GetMyName" Return mb.Name End Function Achtung- für diese Funktion ist im Modul notwendig zu vereinbaren: Imports System.Reflection, System.Diagnostics Nun zur praktischen Anwendung.
womit man in der Listbox eine Zeile erhält, die den Prozedurnamen derjenigen Prozedur erhält, in der eben diese Zeile steht debugForm("meinZähler: " + meinZähler.ToString) um den Wert der Variablen in eine ListboxZeile ein zu tragen debugForm(vbTab + "PC: " + myPCname, True) um den PC-Namen, den man vorher ermittelte, an die zuletzt geschriebene Zeile in der Listbox anzufügen. oder auch etwa debugForm("* Userdaten") debugForm(theUserID + vbTab + theUserRights + vbTab + thePassword) wobei hier die Variablen schon Strings sind. Tipp im Tipp: Man erhält bei dieser Vorgehensweise in der Listbox eine chronologische Abfolge des Programmablaufs. Dieser Tipp wurde bereits 8.271 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
Neu! sevPopUp 2.0 Dynamische Kontextmenüs! Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |