VB2015 beim Debuggen zum Formular wechseln

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    VB2015 beim Debuggen zum Formular wechseln

    Hallo,
    ich möchte mein Programm debuggen. Dabei habe ich zwei Probleme:

    1. Wenn ich im Debug-Modus bin, kann ich nicht zu meiner Programmoberfläche wechseln und die Ausgabe kontrollieren.

    2. Ich kann das Programm erst dann debuggen, bzw. laufen lassen, wenn es keine Syntaxfehler mehr gibt

    Vorher habe ich in VB6 programmiert. Dort wurde ein Programm bis zu einem Haltepunkt oder einem Fehler ausgeführt. Außerdem konnte man bei einem Haltepunkt zwischen Code und Oberfläche wechseln.

    Vielleicht hat jemand von euch die gleichen Probleme, oder hat, noch besser, eine Lösung dafür.

    Vielen Dank

    *Topic verschoben, beim nächsten Mal bitte ins richtige Forum posten!*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Servus Tron, willkommen im Forum :thumbup:

    Stell dir doch mal folgende frage:
    Ist es Sinnvoll ein Programm laufen zu lassen, welches einen offensichtlichen und absolut grundlegenden Fehler hat?

    was die "Ausgabe" angeht, sobald du dich an einem Haltepunkt befindest, solltest du in der unteren linken hälfte von VS die Fenster "local", "autos" und "watch" haben. In diesen werden dir alle relevanten variablen angezeigt, und du kannst durch sämtliche Properties und sonstige Member Blättern.
    Das selbe kannst du jedoch auch tun, indem du mit der Maus, während du durch den Code steppst, über den entsprechenden Variablen hoverst. Du brauchst also nicht die "Ausgabe" betrachten, VS zeigt dir noch viel mehr.
    @tron25 Willkommen im Forum. :thumbup:
    Willkommen in der Welt der "richtigen Programmierung". 8o
    Ich weiß, dass alte Basic-Varianten liefen und an der ersten Zeile, die syntaktisch falsch sind, stehen blieben. Dies ist eine Besonderheit von Interpretern und Compretern, wo das so ist.
    Ob das in VB6 so ist bzw. so sein kann, weiß ich nicht.
    Lerne dies:
    Jede einzelne Zeile Code, von deren Richtigkeit Du Dich nicht überzeugt hast, ist falsch :!: Wenn Du nach Überlegung nicht geneigt bist diesem Satz zuzustimmen, bist Du arrogant und Du wirst hier wenig echte Hilfe bekommen.
    Das Hilfsmittel, sich vom Funktionieren von Code zu überzeugen, ist das Debuggen (Fehlerfrei machen), gugst Du hier.
    .NET stellt Compiler bereit, die den gesamten Projekt-Code compilieren, bevor er ausgeführt werden kann.
    Code, der erst compiliert werden muss, bevor er ausgeführt werden kann, muss inkrementell erstellt werden :!:
    D.h., Du bist entweder so genial, dass Du 1000 Zeilen Code schreiben kannst, ohne zumindest die Compilierbarkeit zu testen
    oder
    Du compilierst Dein Programm nach jeder geschriebenen in sich zusammengehörigen Code-Gruppe (z.B. einen If- oder Using-Block, eine While-Schleife usw.)
    Wenn Du Code von VB6 nach VB.NET übernehmen willst, musst Du etwa so vorgehen:
    Erstell ein neues Projekt mit Option Strict On.
    Designe die .NET-GUI nach dem Bild der alten GUI.
    Übernimm die VB6-Variablen nach VB.NET, überleg Dir dabei, welchen .NET-Typ sie dann haben müssen.
    Übernimm einzeln Prozeduren, die nur aufgerufen werden, nicht aber selbst noch nicht übertragene Prozeduren aufrufen (sozusagen von unten nach oben).
    Teste Deinen Code nach jeder einzelnen eingefügten Prozedur.
    Schreibe ggf. in eine separate Button_Click-Prozedur einen Test-Aufruf für diese Prozeduren, beachte dabei, dass gewisse Startbedingungen erfüllt sein müssen.
    Wenn der Test erfolgreich verlief, übernimm die nächste Prozedur.
    Achtung:
    Das Arbeiten mit GUI-Controls unter VB.NET ist völlig anders als unter VB6 :!:
    Wenn Du ein klar umrissenes Teilproblem hast, löse dies in einem separeten .NET-Projekt und übernimm dann den fertigen getesteten Code in Dein Hauptprogramm.
    Viel Erfolg. :thumbsup:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Vielen Dank für eure Antworten. Um die Notwendigkeit einer Lösung für mein Problem etwas besser zu verdeutlichen, muß ich etwas ausholen:

    Ich habe ein Programm geschrieben, um ein Bild in eine Punktgrafik umwandeln zu können. Diese Grafik wird dann auf einem Brailledrucker für Blinde ausgedruckt, sodaß sie ein Bild ertasten können. Die Version in VB6 funktioniert so ganz gut. Vor einem halben Jahr habe ich angefangen, daß Programm in VB2015 zu portieren. Neben kleineren Anpassungen, z.B. VB6 ".Caption", VB2015 ".Text", gibt es natürlich auch komplette Funktionen, die um- bzw. neugeschrieben werden müssen.

    1. Da ich viel mit Grafikzeichnung, z.B. FillElipse, arbeite, würde ich gerne beim Debuggen nachsehen, ob ein Kreis an die richtige Stelle gezeichnet wurde oder Ähnliches.

    2. Ich habe den completten Code schon importiert und hatte ihn auch schon syntaktisch fehlerfrei. Nun möchte ich einiges umschreiben, da das Programm beim Zoomen des Arbeitsblattes schnell an seine Grenzen stößt, was die größe einer Picturebox angeht. Das Programm soll ja nicht nur für Blinde und Sehbehinderte sein, sondern auch von ihnen bedient werden. Da ich selbst auch stark sehbehindert bin, währe eine Lösung auch für mich als Entwickler sehr Hilfreich.

    Auch wenn es zu meinen Problemen keine Lösung geben sollte, möchte ich mich herzlich für eure Hilfe bedanken.
    @tron25 Während des Debuggens werden die Controls der GUI nicht refreshed.
    Um beim Debuggen zu sehen, was auf dem Bildschirm steht, empfiehlt sich ein zweiter Bildschirm. Auf dem einen läuft die zu debuggende Form, auf dem anderen die Entwicklungsumgebung.
    Setze einen Haltepunkt in Dein Programm.
    Wenn das Programm bei diesem Haltepunkt stoppt, ist die GUI aktuell. Wenn Du nun schrittweise Dein Programm abarbeitest, werden Änderungen an der GUI nicht (vollständig) nachgezogen, insbesondere wird das Malen in einer Paint-Anweisung nicht dargestellt.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!