Ein kleines Button-Problem

  • VB6

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von Yamaha-Dx.

    Ein kleines Button-Problem

    Halllo an alle !

    Habe folgendes, simples Problem.

    Ich habe mehrere Labels erstellt und würde gerne über 2 Buttons VOR und ZURÜCK blättern.
    Also Label1 ist sichtbar, dann kommen noch 3 oder 4 weitere - mit anderen worten, auf klick
    soll die Label1 unsichtbar werden und Label2 sichtbar. Nächster klick Label2 unsichtbar,
    Label3 sichtbar usw... und natürlich soll auch durch klick auf den ZURÜCK Button der Kontra-Effekt
    statt finden.
    Nun bin ich zu doof um das so wie ich es mir vorstelle zu gestalten. Alles ist da, die Labels,
    die Buttons, nur die richtige Anweisung fehlt.

    Danke an alle schon mal !
    So würde ich es machen :D

    Button 1:

    Visual Basic-Quellcode

    1. Label1.visible = true
    2. Label2.visible = false


    Button2:

    Visual Basic-Quellcode

    1. Label1.visible = false
    2. Label2.visble = true


    Das ist jetzt mit zwei Buttons u. zwei Labels. Ich weiß jetzt nicht ob es dafür noch einen einfachen code gibt! Jedenfalls müsstest du die code's in die jeweiligen Buttons schreiben ;D
    gruß
    UHecker_96
    Hier ein beispiel für vorwärtd: (Ist mit if abfragen gibt sicher noch mehr lösung aber dies ist recht einfach)

    Visual Basic-Quellcode

    1. Private Sub Vorwärts_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. If Label1.Visible = True Then
    3. Label2.Visible = True
    4. Label1.Visible = False
    5. ElseIf Label2.Visible = True Then
    6. Label2.Visible = False
    7. Label3.Visible = True
    8. ElseIf Label3.Visible = True Then
    9. Label3.Visible = False
    10. Label4.Visible = True
    11. End If
    12. End Sub

    Also alle Labels außer 1 auf Visible = False
    dann gehts rückwärts müsstest du damitr acuh schaffen
    ich würds iwie so machen:

    Visual Basic-Quellcode

    1. dim x as byte
    2. cmdVor_click:
    3. x = x+1
    4. select case x
    5. case 1
    6. label1.visible = true
    7. label2.visible = false
    8. 'etc
    9. case 2
    10. ...
    11. end select
    12. cmdZurueck_click:
    13. x = x-1
    14. select case x
    15. case 1
    16. label1.visible = true
    17. label2.visible = false
    18. 'etc
    19. case 2
    20. ...
    21. end select
    Für ein Mindestmaß an Rechtschreibung, Interpunktion und Majuskeln!
    Das geht viel einfacherer weils ja VB6 ist.

    Zuerst benennst du alle Labels gleich, damit bekommen die Indicies und danach einfach folgendes

    Global

    Visual Basic-Quellcode

    1. Dim Page As Integer
    2. Dim PageTotal As Integer
    3. Page = 0
    4. PageTotal = 4


    Visual Basic-Quellcode

    1. Sub ButtonForward_Click()
    2. Page = Page + 1
    3. If Page <= PageTotal Then
    4. Call ShowLabels()
    5. Else
    6. Page = PageTotal - 1
    7. ButtonForward.Enabled = False
    8. End If
    9. End Sub
    10. Sub ButtonBackward_Click()
    11. Page = Page - 1
    12. If Page >= 0 Then
    13. Call ShowLabels()
    14. Else
    15. Page = 0
    16. ButtonBackward.Enabled = False
    17. End If
    18. End Sub
    19. Sub ShowLabels()
    20. For i = 0 To PageTotal - 1
    21. If i = Page Then
    22. Label(i).Visible = True
    23. Else
    24. Label(i).Visible = False
    25. Next i
    26. End Sub
    also besser ist wohl ein Panel(ist glaube ich aber noch nicht vorhanden) oder eine Groupbox(ggf. aussehen anpassen, sodass es nicht sichtbar ist), in diese fügst du dann deine verschiedenen "Seiten" ein und musst anschließend nur noch diese Panles/GroupBoxen Verstecken und anzeigen...

    oder mit Indizies wie bei Dodo^^
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Ich würde die Labels als Array erstellen. Beim Vor-Button das Array durchlaufen und wenn einer Visible=True ist, diesen auf False setzen und den nächsten auf true. War es der letzte, den ersten auf true setzen. Rückwärts halt umgekehrt.
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    Hi Dodo, Hi bla...

    euere Antworten sind wirklich professionell. Leider bin ich irgendwie zu doof das ganze da zu verstehen, aber TheMats Beispiel ist für mich irgendwie verständlich.

    Danke allen sehr. Ich glaube mit einer von diesen 3 Varianten wird es schon klappen.
    das von Dodo ist im Endeffekt ebenfalls ein Array, er hat dir das ganze sogar bereits vorprogrammiert...
    und meine Möglichkeit haste anscheinend übersehen...xD
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Was ist daran schwer? Das sind wirklich einfahcste Basics, ich habe meinen Code nochmal angepasst, damit die Buttons automatisch disabled werden wenn das Limit erreicht wurde.

    Versuche es zu verstehen, denn es gibt viele Wege nach Rom, alle Lösungen sind im prinzip korrekt, jedoch muss man auch auf die Übersicht schauen und da haperts bei den anderen Codes sehr stark. Gerade wenn noch mehr Labels hinzukommen, meiner bleibt jedoch gleich, heißt er ist vollkommen Dynamisch und unabhängig von der menge der Lables.
    da haperts bei den anderen Codes sehr stark

    Da wage ich es mal zu wiedersprechen, wenn man bei mir mit indizierten GroupBoxen/Panels arbeitet, hat man die Seiten wesentlich übersichtlicher und kompakter, vorallem weil bei dir ja ein Label eine Seite wäre, würde vom Prinzip her aber auf denselben Code rauslaufen...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Profi ist eben Profi.

    Mann kann nie ein Fahrrad miteinem Auto vergleichen. Beides sind Fortbewegungsmittel, aber der Unterschied ist sehr groß. Bis ich das wissen erreicht habe dies alles so zu verstehen, da sehe ich
    alt aus-:)

    An sich ist es versändlich +1 = einfach ein Label weiter, aebr was wo einfügen ist eine andere Sache.

    Bin aber am experimentieren. Das ganze soll ne Art Ratespiel werden. Label1 = Frage1, dann nächste Frage usw....

    Falls nichts darus wird, ist es kein Weltuntergang. VB ist bei mir eh nur zum Spass. Viel dank aber für die Mühe
    @jvbsl: Ich meinte natürlich nicht dein Vorschlag sondern den wirklich hier geposteten Code, wo u.a. sogar .NET Code dabei ist.
    Aber auch wenn er GroupBoxen nimmt hat er das selbe Problem wie gerade mit dne Labels, er muss eine Anzeigen die anderen Verstecken. Gorupboxen machen Sinn wenn auf einer Seite mehrere Lables sind die versteckt werden sollen.

    @Yamaha-Dx: Wo Einfügen? Ich habe sogar extra die Button Subs mit angegeben das du weißt wohin der Code muss, nämlich wenn doppelt auf einen Button klickst.
    Also bitte, ein wenig Basics sollten schon da sein, denn ein Programm komplett für dich Coden machen wir nicht, selbst dieser Copy und Paste Code ist schon eine außergewöhnlichkeit von mir.
    Das aber nur weils eben VB6 und nicht .NET ist.
    Hu hu...

    Also wirklich, ein Code von jemanden erwarte ich nicht. Sonst wäre das Programm ja nicht vor mir, sondern nur die Idee. Ich weiß wo mein Problem ist, ich bekomme einfach eine Idee, habe aber nicht das Wissen diese umzusetzen. Ich weiß dass ich viel besser Homepages erstellen kann und das tue ich auch lieber, aber VB muß auch mal sein. Diese ganzen Dinge schaue ich mir an und es wird früher oder später etwas daraus werden.
    NOCH mache ich etwas flasch - nämlich, es kommt keine Fehlermeldung, aber die Buttons werden beim klicken inaktiv und so komme ich im Moment nicht weiter. Bim bereits am Suchen des Fehlers.

    Ich danke allen beteiligten sehr für die Hilfe.