Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [VB 2010 win form] Arraylist di classi

    Ciao,

    Vorrei fare un arraylist di classi.. Nel caso specifico un arraylist di nome films che ha come elementi classi di nome film (la fantasia per le variabili è il mio forte..) Sul totem c'è un esempio molto chiaro, ma se provo a trasportarlo sul mio 'caso', mi dice che devo usare il comando new.. ma io l'ho usato!!

    vi posto code

    codice:
    Public Class form1
        Dim memx As Integer, memy As Integer
        Dim sale As Integer
        Dim cinema(100) As sala
        Dim cinema_name As String
        Dim salvato As Boolean
        Dim films As ArrayList
    
    
        <Serializable()> _
        Public Class film
            Dim _titolo As String
            Dim _DurataOreFilm As Int16
            Dim _DurataMinutiFilm As Int16
            Dim _DurataPubblicita As Int16
            Dim _formato As _format
            Enum _format
                f3d
                f35mm
                fdgt
            End Enum
    
            Dim _f35mm As Boolean
            Dim _fdgt As Boolean
            Dim _f3d As Boolean
    
            Public Property titolo As String
                Get
                    Return _titolo
                End Get
                Set(ByVal value As String)
    
                    _titolo = value
    
                End Set
            End Property
            Public Property DurataOreFilm As Byte
                Get
                    Return _DurataOreFilm
                End Get
                Set(ByVal value As Byte)
    
                    _DurataOreFilm = value
    
                End Set
            End Property
            Public Property DurataMinutiFilm As Byte
                Get
                    Return _DurataMinutiFilm
                End Get
                Set(ByVal value As Byte)
    
                    _DurataMinutiFilm = value
    
                End Set
            End Property
    
            Public Property DurataPubblicita As Byte
                Get
                    Return _DurataPubblicita
                End Get
                Set(ByVal value As Byte)
                    If value > 0 Then
                        _DurataPubblicita = value
                    End If
                End Set
            End Property
    
            Public Property formato As _format
                Get
                    Return _formato
                End Get
                Set(ByVal value As _format)
    
                    _formato = value
    
                End Set
            End Property
            
        End Class
    
    
    Private Sub AggiungiFilm_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AggiungiFilm.Click
            Dim a As New film
            Dim ob As New Label
            Dim y As Int16
    
            If films IsNot Nothing Then
                'y = 5
            Else
                'y = 60 * films.Count
            End If
            'inserisco scheda film nell'array di struttura
            a.titolo = InputNomeFilm.Text
            a.DurataOreFilm = InputOraFilm.Text
            a.DurataMinutiFilm = InputMinFilm.Text
            a.DurataPubblicita = InputMinPub.Text
            If Check35mm.CheckState = True Then
                a.formato = film._format.f35mm
            ElseIf check3d.CheckState = True Then
                a.formato = film._format.f3d
            ElseIf Checkdgt.CheckState = True Then
                a.formato = film._format.fdgt
            End If
    
            'ecco.. qui è dove si blocca tutto
            films.Add(a)
    
            'definisco proprietà oggetto
            ob.Text = a.titolo & vbCr & a.DurataOreFilm & " hh " & a.DurataMinutiFilm & " mm " & vbCr & "publicita e trailer =" & a.DurataPubblicita
            ob.BackColor = Color.Cyan
            ob.Top += y
            ob.Left = 30
            ob.AutoSize = False
            ob.TextAlign = ContentAlignment.MiddleCenter
            ob.BorderStyle = BorderStyle.FixedSingle
            ob.Width = (a.DurataOreFilm * 60) + a.DurataMinutiFilm + a.DurataPubblicita
            ob.Height = 50
            ob.AllowDrop = True
    
    
    
    
    
            Me.Panelfilm.Controls.Add(ob)
            'AddHandler ob.Click, AddressOf objfilm_click
            AddHandler ob.MouseDown, AddressOf objfilm_MouseDown
    
    
        End Sub

    il prblema è sull'inizializzazione..


  2. #2
    Forse dovresti scrivere
    codice:
    Dim films As New ArrayList
    Chi non cerca trova.

  3. #3
    che tristezza...

    avrò riguardato il codice mille volte..

    ..grazie Tas

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.