[VB] Object met array properties

Pagina: 1
Acties:

  • Mickman
  • Registratie: Juni 2001
  • Laatst online: 29-03 18:11
Ik heb het volgende probleem:

Ik heb een classe met een hoop properties:
voorbeeld
objClasse.property1 = "ip address 1
objClasse.property2 = "subnet mask"

hiernaast heeft de classe nog een hoop objecten.

Nu wilde ik voor het vullen van de properties een andere manier vinden.

Ik heb het volgende

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 Classe...
Private LocatieArray As Properties

>>>
'opsomming van properties
Get, Let enzo (ip_address, subnet_mask)
>>>

Public Sub ObjectItem(Index As Integer, Text As String)
     LocatieArray(Index).Value = Text
End Sub

Private Sub Class_Initialize()
    LocatieArray(0) = ip_address
    LocatieArray(1) = subnet_mask
End Sub

code:
1
2
3
4
5
Module
 Set objCentraalMVE = New Locatie
            For intCol = 1 To Grid.Cols - 1
                objCentraalMVE.ObjectItem intCol, Grid.TextMatrix(intRow, intCol)
            Next


Met bovenstaande code geeft hij aan dat objCentraalMVE 'not set' is.
Als ik het vullen van de array uit de Class_Initialize haal, dan wordt hij wel ge'set', maar dan krijg ik dezelfde foutmelding voor ObjectItem.

Wat doe ik fout, en is er misschien een andere oplossing?
Het vullen van de array buiten een procedure is dus niet mogelijk.

  • Mickman
  • Registratie: Juni 2001
  • Laatst online: 29-03 18:11
Klein schopje, want 'probleem' is er nog steeds.
Ik heb nu de oude situatie hersteld en nu moet ik steeds elke property aanroepen. Ik zoek dus echt iets om dit te kunnen automatiseren. Iemand?

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 18-08 22:57

Gerco

Professional Newbie

Je kunt CallByName gebruiken (traag) of je kunt een iets uitgebreidere property maken, zoiets:
Visual Basic .NET:
1
2
3
Public Property Set AlleProps(PropName As String, PropValue As String)
  ' Sla property PropName met PropValue ergens op (Collection, array, whatever)
End Property

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • Mickman
  • Registratie: Juni 2001
  • Laatst online: 29-03 18:11
Maar met deze methode moet ik nog steeds per property deze property aanropen.
Ik iets hebben waardoor ik waarden door middel van een loop kan wegzetten.

For i = 0 to Ubound(array)
obj.item(i) = array(i)
Next

zoiets dus

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 18-08 22:57

Gerco

Professional Newbie

Natuurlijk moet dat, maar ik neem aan dat je zelf toch wel slim genoeg bent om die PropName in een array index om te zetten.

Verder vind ik het wel duidelijk om een string te gebruiken (of constanten voor je array indexes) zodat je duidelijk kan zien welke property het om gaat. Het argument "dan moet ik steeds die property aanroepen" is natuurlijk waar, maar waar komen je gegevens vandaan dan? Moet je die niet inlezen?

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • Mickman
  • Registratie: Juni 2001
  • Laatst online: 29-03 18:11
Ik begrijp wat je bedoeld.
De gegevens komen uit een Grid.
Per rij staan er een aantal kolommen waaruit de gegevens komen die in de properties worden gezet.

Ik ga wat proberen, wanneer het gelukt is zal ik hier de oplossing posten

[ Voor 20% gewijzigd door Mickman op 13-05-2003 08:18 ]

Pagina: 1