Oppure

Loading
17/04/08 10:14
gabryk
Ciao a tutti il mio problema è questo: devo creare un calendario di calcio che abbia x giornate e y partite (in ogni giornata). Per ogni giornata devo avere il titolo in una label (del tipo "Giornata 1";) e tante righe quanto è y (in ogni riga devono esserci 3 textbox per il risultato di andata e di ritorno e per contenere le due squadre sfidanti.
Tipo

Giornata 1
0-1 | Topolino - Minni | 0-0
6-2 | Pippo - Pluto | 2-1
2-1 | Paperoga - Paperone | 3-3
1-1 | Qui - Quo | 0-0

Il problema è che da quante giornate dev'essere il calendario e da quante partite devono essere formate le giornate devono essere parametri liberi.
Ora stavo provando a creare a runtime il titolo e a spostarlo nel form a seconda dello spazio disponibile (se uso left e top senza accorgimenti dopo la giornata 7 le altre vanno fuori dalla zona visibile del form) e ci sono riuscito.
Il problema maggiore ora è creare a runtime una riga per ogni partita e posizionarla correttamente. Dovrei usare dei Do annidati credo ma quando provo mi da errore "oggetto già caricato" e non riesco a capire perchè.

Provavo qualcosa del genere:
i = 1
Do Until i >= giornate
    r = 1
    If i > 1 Then
        Load lblGiornata(i)
        lblGiornata(i).Caption = "Giornata " & i
        lblGiornata(i).Top = txtSquadre(i).Top + 285 + 65
        lblGiornata(i).Visible = True
    End If

    Do Until r >= partite
        Load lblRisultatoA(r)
        Load txtSquadre(r)
        Load lblRisultatoR(r)
        lblRisultatoA(r).Top = lblRisultatoA(r - 1).Top + 285
        lblRisultatoR(r).Top = lblRisultatoR(r - 1).Top + 285
        txtSquadre(r).Top = txtSquadre(r - 1).Top + 285
        lblRisultatoA(r).Visible = True
        lblRisultatoR(r).Visible = True
        txtSquadre(r).Visible = True
    r = r + 1
    Loop
i = i + 1
Loop
aaa
17/04/08 12:15
P4p3r0g4
ehi gioco anch'io!!

comunque cava i do e metti i for.

ah e per gli index.
i controlli da cui prendono elementi i load che index hanno?
Ultima modifica effettuata da P4p3r0g4 17/04/08 12:17
aaa
17/04/08 15:23
gabryk
Gli elementi da riprodurre a runtime hanno index 0 ovviamente, per questo la i parte da 1... o è lì che sbaglio?

Cmq questo è il codice con i for, ma questo non inizia nemmeno il ciclo perchè ho messo una msgbox che dovrebbe dirmi il valore di i ad ogni ripetizione, invece non fa niente...

For i = 2 To i >= giornate Step 1
    If i > 1 Then
        Load lblGiornata(i)
        lblGiornata(i).Caption = "Giornata " & i
        lblGiornata(i).Top = txtSquadre(i).Top + 285 + 65
        lblGiornata(i).Visible = True
    End If
    For r = 2 To r >= partite Step 1
        Load lblRisultatoA(r)
        Load txtSquadre(r)
        Load lblRisultatoR(r)
        lblRisultatoA(r).Top = lblRisultatoA(r - 1).Top + 285
        lblRisultatoR(r).Top = lblRisultatoR(r - 1).Top + 285
        txtSquadre(r).Top = txtSquadre(r - 1).Top + 285
        lblRisultatoA(r).Visible = True
        lblRisultatoR(r).Visible = True
        txtSquadre(r).Visible = True
    Next r
Next i
Ultima modifica effettuata da gabryk 17/04/08 15:41
aaa
17/04/08 17:20
P4p3r0g4
hai cannato in pieno l'uso del for
For i = 1 To giornate
    If i > 1 Then
        Load lblGiornata(i)
        lblGiornata(i).Caption = "Giornata " & i
        lblGiornata(i).Top = txtSquadre(i).Top + 285 + 65
        lblGiornata(i).Visible = True
    End If
    For r = 1 To partite
        Load lblRisultatoA(r)
        Load txtSquadre(r)
        Load lblRisultatoR(r)
        lblRisultatoA(r).Top = lblRisultatoA(r - 1).Top + 285
        lblRisultatoR(r).Top = lblRisultatoR(r - 1).Top + 285
        txtSquadre(r).Top = txtSquadre(r - 1).Top + 285
        lblRisultatoA(r).Visible = True
        lblRisultatoR(r).Visible = True
        txtSquadre(r).Visible = True
    Next r
Next i 


questo dovrebbe funzionare.
aaa