Ergebnis 1 bis 7 von 7
  1. #1
    Fap Fap Fap Fap Avatar von Karlito
    Registriert seit
    13.03.2009
    Beiträge
    56

    Frage Schleife mit Steuerelementen

    Grüßt euch

    Ich bin gerade dabei nen kleinen Kalender zu machen
    habe aber folgendes Problem

    ich lese eine Datenabnk aus und möchte dann meine einzelnen controls ein datum übergeben. Ich weiss zwar wie ich ein datum übergebe...aber wie mach ich das bei 365? ich dachte mir das mit einer for schleife zu lösen, doch da bin ich auf das problem gestoßen. wie kann ich der for schleife sagen das sie bei jedem durchgang ein steuerelement weiter springen soll? das sieht bis jetzt so aus:

    Code:
     For i As Integer = 1 To 365
                
    vGraphics = PictureBox1.CreateGraphics
    vGraphics.DrawString((aa.SearchDates(lUser, CDate("01.01." & year) & " 10:10:10")), vFont, vBrush, vPoint)
    Next
    das wäre jetzt zum beispeil wenn ich den 1.1.2010 eintragen wollte.
    die picturebox1 steht in diesem fall für den 1.1.2010. ich hab mir gedacht eventuell picturebox1 einfach die 1 durch das i als zählvariable zu ersetzen, aber das klappt ja nun nich wirklich

  2. #2
    Anfänger
    Registriert seit
    24.06.2010
    Beiträge
    6

    Standard

    mach dir nen array aus den Controls und spreche dann mit einer foreach schleife die Elemente an.

  3. #3
    Fap Fap Fap Fap Avatar von Karlito
    Registriert seit
    13.03.2009
    Beiträge
    56

    Standard

    Code:
    Dim sachen(i2) As PictureBox
    
    For i As Integer = 1 To 365
    
    sachen(i) = New PictureBox
    vGraphics = sachen(i).CreateGraphics
    
    vGraphics.DrawString((aa.SearchDates(lUser, CDate("01.01." & year) & " 10:10:10")), vFont, vBrush, vPoint)
                   
    
      Next
    "Index war außerhalb des arraybereichs"
    könntest du mir das als pseudocode zeigen?
    ich mach dir ja schon lange nen kopf drüber, aber ich hab da ne blokade :/

  4. #4
    CIH-Virus Avatar von krusty
    Registriert seit
    12.10.2008
    Beiträge
    445

    Standard

    so gehst du jedes steuerelement der jeweiligen Form durch:
    for each c as controll in me.controlls
    c.text = now.tostring("hh.mm.ss")
    next

    Deine beschreibung ist wirklich fürn arsch.
    Willst du einfach in jede Picturbox, die vorhanden ist etwas zeichnen ?

    Es gibt die List(of Klasse, damit kannste recht gut arbeiten.
    Werden deine Controlls zur Laufzeit hinzugefügt ?

  5. #5
    Fap Fap Fap Fap Avatar von Karlito
    Registriert seit
    13.03.2009
    Beiträge
    56

    Standard

    ich will die schleife immer weiter hochzählen lassen z.b. bis 30 (Monat) und dann soll mit jedem Durchgang eine andere picturebox beschrieben werden. (picbox1,picbox2,picbox3....picbox30)

    die controls sind bereits zu beginn da, werden nicht erst hinzugefügt

  6. #6
    Anfänger
    Registriert seit
    12.02.2010
    Beiträge
    28

    Standard

    Leg dir ein Array von den bereits vorhandenen Picboxen an, das kannst du dann auch in der Schleife verwenden.

    PHP-Code:
    Dim bilder(30) As PictureBox = {PictureBox1,PictureBox2,PictureBox3,...} 

  7. #7
    Fap Fap Fap Fap Avatar von Karlito
    Registriert seit
    13.03.2009
    Beiträge
    56

    Standard

    ich habs mit der variante von krusty gelöst -> for each c as controll in me.controlls...

    klappt im grunde auch, sieht so aus:

    Code:
    Dim a As Integer
            Dim arr As New List(Of PictureBox)
            arr.Add(PictureBox1)
            arr.Add(PictureBox2)
            arr.Add(PictureBox3)
            arr.Add(PictureBox4)
            arr.Add(PictureBox5)
            arr.Add(PictureBox6)
            arr.Add(PictureBox7)
            arr.Add(PictureBox8)
            arr.Add(PictureBox9)
            arr.Add(PictureBox10)
            arr.Add(PictureBox11)
            arr.Add(PictureBox12)
            usw....
            arr.Add(PictureBox30)
            For Each i As PictureBox In arr
                a = a + 1
                aa.OpenDb()
                vGraphics = i.CreateGraphics
    
    If a < 10 Then vGraphics.DrawString((aa.SearchDates(lUser, CDate("0" & a & ".01." & year) & " 10:10:10")), vFont, vBrush, vPoint)
    
    If a >= 10 Then vGraphics.DrawString((aa.SearchDates(lUser, CDate(a & ".01." & year) & " 10:10:10")), vFont, vBrush, vPoint)
    
                aa.CloseDb()
            Next

    ich muss die if-auswahl teffen weil das datum ab dem 10. keine 0 mehr davor gesetzt werden kann. aus irgendeinen grund werden aber in diesem besipiel nur die picturebox1 und die 10. beschrieben.
    im ersten versuch als ich in jede das selbe datum eingetragen hab hat es funktioniert, es kann hier also nur an den if anweisungen hängen.

    hoohead: "1337mate, da werden nerds zu geeks!"

Ähnliche Themen

  1. While schleife
    Von inmate im Forum Trashbox
    Antworten: 4
    Letzter Beitrag: 09.09.2009, 22:59
  2. Innere Schleife
    Von K4C00KiE im Forum Java
    Antworten: 8
    Letzter Beitrag: 28.07.2009, 13:59
  3. Problem mit Schleife
    Von neocrom im Forum Java
    Antworten: 6
    Letzter Beitrag: 28.03.2009, 19:24
  4. JS Funktion in PHP while-Schleife
    Von M3n70s im Forum (X)HTML & CSS
    Antworten: 3
    Letzter Beitrag: 20.02.2009, 23:24
  5. For Schleife
    Von Brainfuck ++ im Forum C, C++
    Antworten: 5
    Letzter Beitrag: 12.11.2008, 22:16

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •