Mehrere Progress Bars

  • VB.NET

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von RushDen.

    Mehrere Progress Bars

    Hallo liebe Gemeinde,

    Ich hab folgendes Problem.

    Ich habe in meiner Form mehrere progressbars prg_1 bis prg_20 und möchte diese in einer Schleife abarbeiten.

    Gibt es eine Möglichkeit diese progressbar auch mit einer Variable zu Versehen das ich diese nicht nicht alle einzeln abarbeiten muss

    Schleife zählt von 0 bis 20
    Berechnung Wert 1 bis 20
    Schreibt progressbar prg_1.value Ergebnis 1
    Schleife Ende

    Beim zweiten durchlauf soll prg_2 verwendet werden

    Mein Bruder meinte bei vb6 gab es so was wie ein Index

    Bsp alle heissen progressbar(0-20).value

    Vielleicht hat ja jemand ein Tipp für mich

    MfG

    Manne
    Hallo und willkommen im Forum erstmal,

    du kannst die Progressbars in eine List(Of Progressbar) packen und die List in einer Schleife durchlaufen.

    Als kleines Beispiel:

    VB.NET-Quellcode

    1. 'Liste anlegen
    2. Dim ProgressBarList As New List(Of ProgressBar)
    3. 'Liste füllen
    4. ProgressBarList.Add(ProgressBar1)
    5. 'Liste durchlaufen und Wert inkrementieren
    6. For Each p As ProgressBar In ProgressBarList
    7. p.Value += 1
    8. Next
    @Alive79:: Ebenfalls ein Willkommen im Forum. :thumbup:
    Vielleicht ist es sinnvoll, wenn Du erst mal sagst, was Du ühaupt mir diesen Bars anzeigen willst. Mir sieht es aus wie ein Multi-Download. Falls Ja, gugst Du hier.
    Normalerweise sollte der Wert einer Bar durch ein Event eingestellt werden, da musst Du keine Schleife für machen.
    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!

    lordknoblauch schrieb:

    Hallo und willkommen im Forum erstmal,

    du kannst die Progressbars in eine List(Of Progressbar) packen und die List in einer Schleife durchlaufen.

    Als kleines Beispiel:

    VB.NET-Quellcode

    1. 'Liste anlegen
    2. Dim ProgressBarList As New List(Of ProgressBar)
    3. 'Liste füllen
    4. ProgressBarList.Add(ProgressBar1)
    5. 'Liste durchlaufen und Wert inkrementieren
    6. For Each p As ProgressBar In ProgressBarList
    7. p.Value += 1
    8. Next


    Ich würde p.increment () benutzen da ansonsten eine exception geworfen wird, wenn der Wert 100 übersteigt.

    RushDen schrieb:

    wenn der Wert 100 übersteigt.
    Meinst Du:
    Wenn der Wert ProgressBarX.Maximum übersteigt?
    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!
    Hi,

    da ich heute Nacht nur über das Ipad geschrieben hab und jetzt am pc sitze will ich euch mein Programm nicht vorenthalten.



    VB.NET-Quellcode

    1. Dim Suchstrg() As String = {"Mining Drone Operation", "Mining Barge", "Ice Harvesting", "Exhumers", "Arkonor Processing", "Bistot Processing", "Crokite Processing", "Dark Ochre Processing", "Gneiss Processing", "Hedbergite Processing", "Hemorphite Processing", "Jaspet Processing", "Kernite Processing", "Mercoxit Processing", "Omber Processing", "Plagioclase Processing", "Pyroxeres Processing", "Scordite Processing", "Spodumain Processing", "Veldspar Processing"}
    2. Dim Suchweite() As Integer = {74, 64, 66, 60, 70, 69, 70, 73, 69, 73, 73, 69, 70, 71, 68, 74, 72, 71, 72, 71}
    3. Dim char_name As String
    4. Dim char_name_anfg As String
    5. Dim char_name_end As String
    6. Dim char_name_le As String
    7. Dim suche_wert As String
    8. Dim suche_wert_anfg As String
    9. Dim suche_wert_erg As String
    10. Dim a1 As Integer = 0
    11. Dim a2 As Integer = 0
    12. Dim weite As Integer = 0
    13. char_name_anfg = Cont_strg.IndexOf("<title>eveboard - ")
    14. char_name_end = Cont_strg.IndexOf("</title>")
    15. char_name_anfg = char_name_anfg + 18
    16. char_name_le = char_name_end - char_name_anfg
    17. char_name = Cont_strg.Substring(char_name_anfg, char_name_le)
    18. charname.Text = char_name
    19. For i = 1 To 20 Step 1
    20. suche_wert = Suchstrg(a1)
    21. weite = Suchweite(a2)
    22. suche_wert_anfg = Cont_strg.IndexOf(suche_wert)
    23. suche_wert_anfg = suche_wert_anfg + weite
    24. suche_wert_erg = Cont_strg.Substring(suche_wert_anfg, 1)
    25. pgr_1.Value = CInt(suche_wert_erg)
    26. a1 = a1 + 1
    27. a2 = a2 + 1
    28. Next


    das mit der liste werde ich jetzt mal versuchen falls jemand noch einen tipp hat bin ich offen dafür

    ah der Wert der Progressbar ist immer maximum 5

    Danke sonne75 hab ich vorhin versucht und da hat er alles in eine zeile gepackt jetzt ging es

    mfg
    Manne

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Alive79“ ()

    @Alive79:: 2 weitere Hinweise:

    VB.NET-Quellcode

    1. For i = 1 To 20 Step 1
    2. a1 = a1 + 1
    3. Next
    machst Du besser

    VB.NET-Quellcode

    1. For i = 0 To 19
    2. a1 += 1
    3. Next
    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!
    mir scheint, man kann schon erkennen, dass dus mit einem Dictionary(Of String, Integer) viel besser getroffen hättest.
    Gucks dir mal im ObjectBrowser an, und hopf von dort auch inne MSDN.

    Dictionary ist enorm wichtig, ist Grundlagenwissen.
    vlt. dieses Buch lesen (hingegen das Galileio-Openbook ist Mist), weil fehlen ja auch einfachste Syntax-Feinheiten (etwa a1 +=1).
    Versuchst Du da die Skills eines Chars von EVE-Board auszulesen? Oder hat das sonst noch irgend einen tieferen Sinn?
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Hi,

    genau da wir viele neue member in der alli haben wurde ihnen gesagt sie sollen sich auf eveboard ihre chars hinterlegen das wir den mining ertrag berechnen können. Die zweite version läuft schon über die eve api nur da wir viele multiboxer haben mit 20 und mehr acc´s und die sich die arbeit gemacht haben soll es dafür auch ne lösung geben.
    Teile Dein Problem in mehrere Einzelschritte.

    1. Du musst die Daten von EVE-Board auslesen. Dazu brauchst Du den Charname und die Namen der Skills, die Du haben willst.
    2. Du musst die Daten speichern. Dazu brauchst Du ein Datenmodell (typ. DataSet: vb-paradise.de/allgemeines/tip…hste-variante/#post520008, siehe auch alle weiterführenden Links).
    Zumindest musst Du diese Daten in Klassen abbilden. Hier mit Strings zu hantieren führt nicht zum Ziel.
    3. Du musst Deine Berechnungen durchführen. Hierzu brauchst Du die Daten in Deinem Modell.
    4. Brauchst Du eine Ausgabe der Daten (wieviel bekommt jeder).

    Ggf. Musst Du diese Schritte noch weiter unterteilen. Bei welchem Teil hängt es nun?
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Und wofür brauchst Du für die Berechnung ProgressBars? Gerechnet wird mit Zahlen und darauf solltest Du auch Dein Augenmerk legen. Also brauchst Du als Grundlage für Deine Berechnungen ein Datenmodell.

    EDIT:

    da wir viele multiboxer haben mit 20 und mehr acc´s und die sich die arbeit gemacht haben soll es dafür auch ne lösung geben.


    Hört sich gar nicht nach Bots an, nene. Hätt ich das schon früher gelesen, hätt ich Dir gar nicht geantwortet. Ich bin raus hier.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

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

    Du willst Quasi aus allen Skills einen gewissen Score errechnen lassen und das dann quasi auch auf die Erze und Skills der Schiffe/Module aufbröseln?

    List(of ProgressBar) oder was auch immer darüber genannt wurde, wäre hier dien Helfer, dann kannst nach und nach, mit einer foreach schleife die Progressbars festlegen und den Score errechnen lassen, wobei die Progressbars wirklich nur zu darstellung dienen sollten und du intern mit einem array oder einer List(of whatever) dann rechnest, anstatt die werte von den Bars abzurufen.

    Edit: 20 accounts sind vllt etwas übertrieben, aber es gibt viele Leute in EVE (die meisten) die 2+ Accounts haben und die ohne Bots gleichzeitig spielen ( was bei mining, sogar mit 10 oder 20 möglich wäre.)
    0.0 und botten is nich, da verliert man mehr als man gewinn einfährt xD

    nun wieder zur Programmierung.
    also eine Möglichkeit wäre du hast 2 Listen, eine List(of ProgressBar) und eine List(of Int) wobei sich da ein Array vielleicht eher anbieten würde. Dann liest du das ganze aus, verteilst in der Int List oder Array, je nachdem eben,berechnest deinen Score, zählst sie zusammen und verteilst sie dann auf die Bars. evtl lässt sich hier auch mit ner for-Schleife leichter arbeiten.

    Imps werden aussen vor gelassen in deiner Berechnung?

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „EaranMaleasi“ ()

    Hi,

    also mit der List of Progressbar geht es nun

    auszug


    VB.NET-Quellcode

    1. For i = 1 To 20 Step 1
    2. suche_wert = Suchstrg(a1)
    3. weite = Suchweite(a2)
    4. suche_wert_anfg = Cont_strg.IndexOf(suche_wert)
    5. suche_wert_anfg = suche_wert_anfg + weite
    6. suche_wert_erg = Cont_strg.Substring(suche_wert_anfg, 1)
    7. 'MsgBox(Cont_strg.Substring(suche_wert_anfg, 50))
    8. skills(a3) = CInt(suche_wert_erg)
    9. ProgressBarList(a1).Value = CInt(suche_wert_erg)
    10. 'pgr_1.Value = CInt(suche_wert_erg)
    11. a1 += 1
    12. a2 += 1
    13. a3 += 1
    14. Next


    also closed