Archief - [PROG][VB.Net] Vier op een rij met objecten

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Lay Z

Legacy Member
Hello, ik moet 4 op een rij met objecten maken, maar aangezien ik nog niet veel of bijna nooit objecten heb gebruikt zou ik wat hulp kunnen gebruiken.
Het is dus de bedoeling dat als ik op een schijf klik ze rood of geel wordt

Code:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        For intkolom = 0 To 5
            For intrij = 0 To 6
                schijf1 = New BibVierOpRij.schijf
                Rooster(intkolom, intrij) = schijf1
                schijf1.BackColor = System.Drawing.SystemColors.ControlText
                schijf1.Location = New System.Drawing.Point(intrij * 50, intkolom * 50)
                schijf1.Name = intrij
                schijf1.Size = New System.Drawing.Size(50, 50)
                schijf1.speler = 0
                schijf1.TabIndex = 0
                AddHandler schijf1.Click, AddressOf Me.schijfclick
                Controls.Add(schijf1)
            Next
        Next
    End Sub

    Private Sub schijfclick(ByVal sender As Object, ByVal e As System.EventArgs)
       
        veranderspeler(sender)
      
    End Sub
    Private Sub controleer()
    
    End Sub
    Private Sub veranderspeler(ByVal sender As Object)
        If intspeler = 1 Then
            sender.speler = 1
            intspeler = 2

        Else
            sender.speler = 2
            intspeler = 1
        End If
        Me.Refresh()
    End Sub

End Class

en dit is de de code van het object schijf
Code:
 Private Sub schijf_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
        Dim mypaper As Graphics = Me.CreateGraphics

        Select Case intspeler
            Case 0
                mypaper.FillEllipse(Brushes.White, 0, 0, intwidth, intheigth)
            Case 1
                mypaper.FillEllipse(Brushes.Yellow, 0, 0, intwidth, intheigth)
            Case 2
                mypaper.FillEllipse(Brushes.Red, 0, 0, intwidth, intheigth)
        End Select


    End Sub

    Public Property speler() As Integer
        Get
            Return intspeler
        End Get
        Set(ByVal Value As Integer)
            intspeler = Value
        End Set
    End Property


End Class

Nu is mijn vraag: Hoe kan ik teweten komen welke coördinaten de schijf heeft waar ik op klik. Ik weet er staat nog niet veel code van vier op een rij, maar zonder die coördinaten kan ik niet verder.

alva848

Legacy Member
Op zich heb je die coordinaten niet nodig hoor.

Coordinaten bevinden zich gewoonlijk in de 'e' parameter.


Waar volg je ergens les? Ik heb dit m'n eerste module ook moeten doen en IIRC was dat ook zo rond deze tijd van het jaar. :)

Lay Z

Legacy Member
Hoe kan je anders gaan vergelijken of je 4 op een rij hebt? En de 'e' parameter wat is dat voor iets en hoe kan je die oproepen ofzo.

Ik zit in 5 BI in waver

alva848

Legacy Member
De objecten zelf vergelijken.

ByVal e As System.EventArgs

dim x, y as integer
x = e.X
y = e.Y

Verder zou ik persoonlijk een speler klasse, een schijf klasse en een tile(cell) klasse maken.
2 speler objecten
3 schijf objecten ( yup, drie, kan ook met twee. Kan zelfs met drie speler objecten)
42 cell objecten

Denk er maar eens over na hoe je dit zou kunnen doen. :)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan