Aus dem Programm code infos auslesen

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von TheoTechnic.

    Aus dem Programm code infos auslesen

    Ich hab folgendes Anliegen.
    Ich habe in meinem Programmcode eine sub eingebaut, der my.setting.Prozess_aktuell ein höher setzt.
    In einem anderen Form wird nun eine Prozessleiste angezeigt. diese erweitert sich immer wenn my.setting.Prozess_aktuell um ein erhört wird. Nun wird ich gerne noch den gesamten betrag errechnen.

    Nun wird ich gerne ermitteln wie oft in meinem Code my.setting.Prozess_aktuell +1 'Regesti steht. ist dies möglich?
    Wenn möglich wäre es super vor dem Debbugen.
    Es soll ja nur ermittelt werden wie oft dieser Wert erhöht wird, um dann später im Ausführen nicht auf 20 hochgezählt wird und die Max grenze bei 12 lag! Würde unschöne Fehler geben.
    Versteh dein Problem immer noch nicht ganz. Warum machst du das ganze nicht mit einer Abfrage:

    VB.NET-Quellcode

    1. If Not deineZahl = 12 Then
    2. deineZahl = deineZahl +1
    3. EndIf

    Oder noch besser mit einer Property

    VB.NET-Quellcode

    1. Public Property GetSet_Zahl() As Integer
    2. Get
    3. Return deineZahl
    4. End Get
    5. Set(ByVal value As Integer)
    6. If Not deineZahl + value > 12 Then
    7. deineZahl = deineZahl + value
    8. Else
    9. Throw New Exception "Der neue Wert liegt über 12"
    10. EndIf
    11. End Set
    12. End Property

    MfG TheoTechnic

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

    Das war etwas anders gemeint.
    Ich muss wissen bevor der code über haut aus gefürht wird wie oft dieser Teilcode vorhanden ist.
    Damit ich anzeigen kann wie weit mein Programm den Code aus geführt hat.

    Ich beschreibt es nochmal anders, falls es da eine andere Lösung gibt.

    Ich habe eine ProgressBar diese soll anzeigen wie weit mein Programm die Arbeitsschrite (Code) ausgeführt hat.
    Ich habe ein Form dass anzeigt wie weit der Aufbau des anderen Form noch dauert.
    Also im anderem Form wird my.setting.Prozess_aktuell += 1 gezählt pro codeabschnitt. Im erstem Form wird nun immer der Fortschritt angezeigt. Deshalb bräuchte ich auch die Gesamt anzahl damit ich auch bei 100% raus komme und nicht bei 98% oder 104%
    Dann stellst du eben die ProgressBar auf Maximum auf 100 und dann rechnest du immer den Prozentsatz aus wo er grad ist...
    Andere möglichkeit bei der For-Schleife:

    VB.NET-Quellcode

    1. Dim start As Integer = 10
    2. Dim ende As Integer = 100
    3. If Not ende > start Then Throw New ApplicationException("Der Endwert muss größer als der Anfangswert sein.")
    4. With ProgressBar1
    5. .Value = start
    6. .Minimum = start
    7. .Maximum = ende
    8. End With
    9. For i As Integer = start To ende
    10. ProgressBar1.Value = i
    11. My.Application.DoEvents()
    12. 'Hier zur besseren anschaulichkeit
    13. Threading.Thread.Sleep(100)
    14. 'Deine Befehle
    15. Next
    16. MessageBox.Show("Der Durchlauf hat geendet.", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Asterisk)

    Eigentlich genug C&P für heute :D
    Also nochmal mein Problem.

    Ich habe in einem Form, dass zuerst sichtbar ist, habe ich eine Prozessanzeige, die anzeigen soll wie wit mein Programm beim laden des Form ist. Diese Form ist erst unsichtbar und später bei 100% sichtbar.
    Es kann sein, das ich nur einmal den wert einhoch setzte und die Anzeige bei 100% stehen soll oder ich zähle bis 1000 hoch und erst beim Wert 1000 soll 100% erscheinen.
    Deshalb müsste ich auto. erfassen BEVOR der Code gestartet wurd, wie oft ich im Code hoch zähle.

    Jetzt verstanden?

    Das mit dem Hochzählen im Code ist kein Problem! Nur das erfassen wie viele es insgesamt gibt!

    OhManIchAnfänger schrieb:

    Deshalb müsste ich auto. erfassen BEVOR der Code gestartet wurd, wie oft ich im Code hoch zähle.

    @TE: Dein Ansatz ist falsch

    Wenn Du vorher wissen willst/musst wieviele Male Du hochzählst so musst Du das aus deinem Algorithmus zum Hochzählen ableiten , also z.B. Anzahl Files, oder Anzahl Prozesse oder vorher festgelegte Zufallszahl, was auch immer.

    Ansonsten nimmst Du ein Marquee Processbar (rollender Balken) oder setzt den Fortschritt auf 100 * Zähler / (Zähler+1). Dieses ist zwar nicht mehr linear, aber erreicht niemals die 100.
    Also, mach das doch so:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private fortschritt As Integer
    3. Public ReadOnly Property getFortschritt () As Integer
    4. Get
    5. Return Fortschritt
    6. End Get
    7. End Property
    8. Private Sub Form1_Load (...,...) Handles Me.Load
    9. Me.Visible = False
    10. ...
    11. fortschritt += 1
    12. ...
    13. fortschritt += 1
    14. End Sub
    15. End Class


    VB.NET-Quellcode

    1. Public Class Form2
    2. Private Sub los ()
    3. Dim Withevents Status As New Progressbar
    4. status.Loacation = New Point (...,...)
    5. status.Size = New System.Drawing.Size (...,....)
    6. For i As Integer = 0 To Form1.getFortschritt ()
    7. status.Value += Form1.getFortschritt/2 'anpassbar, mach dir am besten dazu auch noch einen Counter
    8. Next

    Das zeigt dir das ganze zwar nicht in echtzeit an, aber auf so etwas kannst du es ja aufbauen.
    MfG TheoTechnic