Autoskalierung mit Zoomfunktion System.OverflowException Error Visual Basic

  • VB.NET

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

    Autoskalierung mit Zoomfunktion System.OverflowException Error Visual Basic

    Hey Leute, ich stehe ein bisschen auf dem Schlauch.
    Ich habe eine Funktion programmiert (Sinusfunktion) mit einer Zoom in und Zoom out Funktion(Buttons) sowie einer automatischen Skalierung. Über die Buttons wird die Funktion mal 2 oder durch zwei geteilt, also zoom in und out. Dazu noch eine Auto Skalierung, die dann bei einem Zoom in die Funktion wieder glätet.

    Allerdings kommt nun regelmäßig ein System Exception error, ich gehe davon aus, dass bei zu vielen zoom in die Funktion die werte zu klein werden oder zu groß um dann noch durch 2 zu teilen oder * 2, was den Speicher dann begrenzt? Oder so...

    önnte man das irgendwie begrenzen? Vielleichtmit einem Zähler, 10 mal rein zoomen maximal? Und die Autoskalierung müsste man vielleicht auch irgendwie anpassen? In der Autoskalierung teile ich durch die maximalen werte der Funktion die ich vorher in ein Array geschrieben habe bzw. auf dem Bildschirm als Funktion geschrieben werden. ?( Würde mich über ein paar Anregungen freuen. Vielleicht gibt es ja auch eine andere Möglichkeit eine Funktion zu Zoomen oder zu skalieren :huh:

    *Beitrag verschoben* ~NoFear23m

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nofear23m“ ()

    Willkommen im Forum.
    Stichwort Root Cause Analyse: Finde die Fehlerursache und begrenze nicht Eingaben, nur um dem Problem zu entkommen. Allerdings musst Du Dich unter diesen Bedingungen selber drum kümmern. Denn ohne Code, Screenshot, Variablenwerte, blablabla wird das hier ne reine Spekulatiusbäckerei. -> mehr Infos bitte

    Anzeige? Buttons? Zoom? Du bist wohl in Visual Studio unterwegs, also mit VB.Net. Der Thread läuft aber unter VBScript. Bitte klären
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Button 1 ist der Zoom in, Button 2 Zoom out Und Button 3 dann die Autoskalierung.
    Und Phi Werte sind die Funktionswerte des Graphen aus dem Array
    VB Studio konnte ich nicht auswählen, weiß nich wo das dann ist?




    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. mphi = mphi * 2
    3. End Sub
    4. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    5. mphi = mphi / 2
    6. End Sub
    7. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    8. For i = 0 To 100
    9. If Math.Abs(Form1.phi_werte(i)) > max_phi Then
    10. max_phi = Form1.phi_werte(i)
    11. End If
    12. Next
    13. mphi = (Me.Height - 100) / 2 / max_phi


    *Codetags eingefügt* ~NoFear23m

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Nofear23m“ ()

    Beim nächsten mal einfach den VB.Net-Tag verwenden. Einen expliziten Visual Studio-Tag gibt's nicht. Ein Moderator wird diesen Thread demnächst in das richtige Unterforum verschieben.

    Jetzt weiß ich aber leider nicht, wo der Fehler auftritt. Und auch wichtig: Welche Werte habe eventuelle Variablen in der Fehlerauftrittszeile? Von welchem Datentyp ist mphi? Und von wo bis wo gehen die Werte in dem Form1.phi_Werte-Array? Und: hat das Form1.phi_Werte-Array wirklich 101-Einträge? Also geht das wirklich von 0 bis 100? Denn das wird in Deiner For-Schleife vorausgesetzt. Wenn das Ding nämlich nur 100 und keine 101 Einträge hat, kommt es zu ner Exception, weil Du dann nämlich nur schreiben darfst: For i = 0 To 99

    btw: bitte CodeTags verwenden
    und für den Fall, dass der hier gezeigte Code nicht in Form1 steht: Dialoge richtig instanziieren
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ah, ok. Und welchen Wert hat max_phi, wenn der Fehler auftritt? Ich vermute mal 0, und Division durch 0 ist bekanntlich ungesund.
    btw: Datentyp, nicht Dateityp ;)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @Hannes kanns nicht Welchen Datentyp haben die Variablen mphi und max_phi?
    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!
    @Hannes kanns nicht Du bist etwas zu kurz angebunden.
    Du hast ein Problem und wendest Dich an das Forum, ohne alle erforderliche Informationen zu posten.
    Die Frage von @VaporiZed nach den Werten hast Du nicht beantwortet. ;(
    Erstell ein Rumpfprojekt, das den Fehler reproduziert, überzeuge Dich davon, dass es das tut, bereinige das Projekt (Erstellen => Bereinigen), pack es in eine ZIP und hänge es über Erweiterte Antwort => Dateianhänge => Hochladen an.
    =====
    Fang an mit Option Strict On.
    Visual Studio - Empfohlene Einstellungen
    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!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „RodFromGermany“ ()