VB6 Variable oder String erstellen...

  • VB6

Es gibt 54 Antworten in diesem Thema. Der letzte Beitrag () ist von FormFollowsFunction.

    Achso. Die Shapes sind Deine Punkte auf der Würfelseite! Jetze.
    Aber das mit dem Counter kapier ich echt nicht. Bleibt Counter immer bei 1? Ist das Gezeigte der vollständige Code?
    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.
    Code

    Visual Basic-Quellcode

    1. ​Private Sub Würfel_Load()
    2. Dim Counter As Byte
    3. Counter = 1
    4. End Sub
    5. Private Sub Command1_Click()
    6. Counter = 1
    7. List1.Clear
    8. End Sub
    9. Private Sub Würfeln_Knopf_Click()
    10. Randomize Timer
    11. w = Int(1 + Rnd * 6)
    12. For i = 0 To 6 '*
    13. Shape1(i).Visible = False
    14. Next
    15. Label3.Caption = w
    16. Label2.Caption = Counter
    17. Text1.Text = (Counter & ". Wurf ergab " & w)
    18. List1.AddItem Text1.Text
    19. Counter = Counter + 1
    20. Text1.Text = ""
    21. If w = 1 Then
    22. Shape1(4).Visible = True
    23. End If
    24. If w = 2 Then
    25. Shape1(0).Visible = True
    26. Shape1(1).Visible = True
    27. End If
    28. If w = 3 Then
    29. Shape1(0).Visible = True
    30. Shape1(1).Visible = True
    31. Shape1(4).Visible = True
    32. End If
    33. If w = 4 Then
    34. Shape1(1).Visible = True
    35. Shape1(3).Visible = True
    36. Shape1(0).Visible = True
    37. Shape1(5).Visible = True
    38. End If
    39. If w = 5 Then
    40. Shape1(0).Visible = True
    41. Shape1(1).Visible = True
    42. Shape1(3).Visible = True
    43. Shape1(4).Visible = True
    44. Shape1(5).Visible = True
    45. End If
    46. If w = 6 Then
    47. Shape1(0).Visible = True
    48. Shape1(1).Visible = True
    49. Shape1(2).Visible = True
    50. Shape1(3).Visible = True
    51. Shape1(5).Visible = True
    52. Shape1(6).Visible = True
    53. End If
    54. End Sub


    Legende:
    Shape1(0,1,2,3,4,5,6) = Würfel punkte
    Counter = Soll die anzahl der würfe zeigen
    Liste1 = Soll 1-??.Wurf (Gewürfelte zahl)
    Command1 = Reset (Clearlist/Counter =1)
    Label2 = Counter anzeige (Zahl)
    text1 = Nur ein leeres und unsichtbares feld als zwischen speicher ( kann man ein String nehmen?)
    w = Gewürfelte zahl

    Layout:
    Shape1(0,1,2,3,4,5,6) = Bilden ein würfel
    Shape2 = würfel umrandung (wird nicht geändert)
    2 butten:
    1x Würfen
    1x Reset
    Ja, statt mit Text1 zu arbeiten, kannst Du auch gleich mit List1.AddItem(Counter & ". Wurf ergab " & w) arbeiten.

    Das einzige, was jetzt noch nicht klappt, ist der Counter, richtig? Wird die Liste korrekt befüllt oder wird die nach jedem Würfel geleert? Nur zur Sicherheit: Der Counter wird (gegen Deinen Willen) während der Programmausführung immer wieder auf Null gesetzt? Falls ja, kommentier mal die Zeile 7 und 8 testweise aus und proier es nochmal.
    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.
    @Immortep99 Bitte erstelle in Zukunft für neue Fragen ein neues Thema, weil sonst die Übersicht sehr leidet. Ab Post #21 scheint es nicht mehr ums eigentliche Thema zu gehen.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Hm... Ich dächt, dass da VB sehr ... ach Moment mal. Au, Kopfschmerz. Dass ich das jetzt erst sehe. Counter ist ja lokal in Form_Load deklariert. Das muss global, also über Private Sub Würfel_Load() stehen, sonst können die anderen Subs damit nix anfangen.
    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.
    Jetzt bleibt er auf 1

    Visual Basic-Quellcode

    1. ​Private Sub Command1_Click()
    2. Counter = 0
    3. Label2.Caption = "0"
    4. List1.Clear
    5. End Sub
    6. Private Sub Würfeln_Knopf_Click()
    7. Dim Counter As Byte
    8. Randomize Timer
    9. w = Int(1 + Rnd * 6)
    10. For i = 0 To 6 '*
    11. Shape1(i).Visible = False
    12. Next
    13. Label3.Caption = w
    14. Counter = Counter + 1
    15. Label2.Caption = Counter
    16. List1.AddItem (Counter & ". Wurf ergab " & w)
    Nein, wie gesagt, Dim Counter As Byte muss aus allen Prozeduren raus, am besten als allererste Zeile im Programm. Sonst wird beim Anklicken von Würfeln_Knopf_Click die Variable Counter immer wieder neu erstellt und auf Null gesetzt. Probier mal:

    Visual Basic-Quellcode

    1. Dim Counter As Byte
    2. Private Sub Würfel_Load()
    3. Randomize Timer
    4. Counter = 1
    5. End Sub
    6. Private Sub Command1_Click()
    7. Counter = 1
    8. List1.Clear
    9. End Sub
    10. Private Sub Würfeln_Knopf_Click()
    11. w = Int(1 + Rnd * 6)
    12. For i = 0 To 6 '*
    13. Shape1(i).Visible = False
    14. Next
    15. Label3.Caption = w
    16. Label2.Caption = Counter
    17. List1.AddItem(Counter & ". Wurf ergab " & w)
    18. Counter = Counter + 1
    19. If w = 1 Then
    20. Shape1(4).Visible = True
    21. End If
    22. If w = 2 Then
    23. Shape1(0).Visible = True
    24. Shape1(1).Visible = True
    25. End If
    26. If w = 3 Then
    27. Shape1(0).Visible = True
    28. Shape1(1).Visible = True
    29. Shape1(4).Visible = True
    30. End If
    31. If w = 4 Then
    32. Shape1(1).Visible = True
    33. Shape1(3).Visible = True
    34. Shape1(0).Visible = True
    35. Shape1(5).Visible = True
    36. End If
    37. If w = 5 Then
    38. Shape1(0).Visible = True
    39. Shape1(1).Visible = True
    40. Shape1(3).Visible = True
    41. Shape1(4).Visible = True
    42. Shape1(5).Visible = True
    43. End If
    44. If w = 6 Then
    45. Shape1(0).Visible = True
    46. Shape1(1).Visible = True
    47. Shape1(2).Visible = True
    48. Shape1(3).Visible = True
    49. Shape1(5).Visible = True
    50. Shape1(6).Visible = True
    51. End If
    52. End Sub

    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.

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

    ErfinderDesRades schrieb:

    @FormFollowsFunction: ... Und noch verwirrender wird, dass es VB 2008 Express eben doch gibt - habich kurz nachgeschlagen
    ...

    :huh: Na toll, jetzt wird mir auch klar wo die Verwirrung ihren Urspung hat, danke Microsoft(Brain). :thumbdown:

    ErfinderDesRades schrieb:

    ...
    Unterschied IDE und Programmiersprache hab ich auch nachgeschlagen - da gibts keine wirklich treffenden Treffer.
    Manche erklären IDE, andere erklären Programmiersprache, aber was der Unterschied ist wird nirgends erklärt.
    ...

    Das wäre ja auch zu einfach, außerdem sagte ich "selbst nachschlagen", nicht vorkauen lassen. ;)
    Lesen und Verstehen, Lesen und verstehen, beides miteinander vergleichen, unterschiede erkenene, fertig.

    ErfinderDesRades schrieb:

    Du schickst ihn da ganz schön in die Wüste, finde ich.

    Ich schicke niemanden, irgentwo hin !
    Wer sich für wichtige Informationen, nicht interressiert, schickt sich selbst in die Wüste.

    edit:

    petaod schrieb:

    FormFollowsFunction schrieb:

    Nutze
    "VS 2017 CE" als IDE und am besten VB.Net, oder wenn es denn sein muss
    vb6 als Sprache
    Es stellt sich für mich die Frage, wie ich in
    Visual Studio natives VB6 programmieren kann.
    Framework auf 2.0, Option Strict Off und alle Referenzen raus außer dem Microsoft.VisualBasic Namespace?
    Also quasi das genaue Gegenteil der empfohlenen Einstellungen?
    Reicht das?
    ...

    Gute Frage, kann ja mal nen vb6ler ausprobieren, ich habe jetzt nicht so Bock drauf.
    vb6 macht echt nur noch für Leute Sinn, die alte Programme Pflegen müssen und das sind in der Regel Profis, die sind damit groß geworden.
    Da sind wir wieder bei diesem Thread; Vieleicht sollte TE erstmal mit seinem Lehrer klären, ob es sinnvoll ist sich überhaupt noch mit vb6 zu beschäftigen.
    Meines Erachtens, nämlich nicht, um nicht zu sagen , daß es sogar total plem plem ist ! :whistling:

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

    FormFollowsFunction schrieb:

    de.wikipedia.org/wiki/Integrierte_Entwicklungsumgebung,
    de.wikipedia.org/wiki/Programmiersprache,
    beides miteinander vergleichen, unterschiede erkenene, fertig.
    Ja - guck - das sind doch wirklich brauchbare Links - jo, und ich hätte die nicht so eben schnell mal im Netz nachschlagen können.
    empfehle ich @Immortep99 sehr, die nachzulesen.
    Beim Lesen wird denn auch klar, dass hier von "Unterschied" garnet gesprochen werden kann, weil um Unterschiede benennen zu können, müssen Dinge vergleichbar sein.
    ZB. "der Unterschied zwischen einem Lenkrad und einem Auto" - sowas ergibt ja gar keinen Sinn, und so isses auch bei den Begriffen Programmiersprache und IDE.

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

    Verklicker deinem Lehrer, wenn es geht, daß es kontraproduktiv ist, erst eine völlig veraltete Sprache zu lernen,
    um dann spähter mühsam umdenken zu müssen, denn wie schon gesagt wurde, vb6 und VB.Net sind vollkommen unterschiedliche Sprachen.
    .Net ist schon ne feine sache, zumal es in Zukunft Open Source sein wird.