Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: [VB6] Tieto-array'n luonti ajossa

rautamiekka [05.04.2009 08:16:21]

#

Googlettamalla en löydä kuin ohjeita luoda kontrolli-array ajon aikana ... Onko yleensäkään mahdollista luoda tietoalkioita(varmaan väärä nimi, suomeni tuppaa mättäämään) varten array ajon aikana ?

Siis tälläinen

Dim arrayID(1 To 50) As String

mutta ajon aikana.

Merri [05.04.2009 11:04:33]

#

Voi luoda, mutta se vaatii Windowsin APIn tuntemusta jollakin tasolla, kuin myös tietynlaista muuttujien hakkerointia. Lisäksi tarvitset joka tapauksessa jonkin valmiiksi määritellyn muuttujan, jonka kautta tietoon pääset käsiksi.

Kiertäviä toimenpiteitä voi myös miettiä. Voit esimerkiksi luoda Collectionin, jonne sijoitat taulukoita:

Option Explicit

Dim Taulut As New Collection

Private Sub Command1_Click()
    Dim UusiTaulu() As String
    ReDim UusiTaulu(1 To Int(Rnd * 50) + 1)
    Taulut.Add UusiTaulu, "Taulu" & (Taulut.Count + 1)
End Sub

Private Sub Command2_Click()
    Dim lngA As Long
    For lngA = 1 To Taulut.Count
        MsgBox UBound(Taulut(lngA))
    Next lngA
End Sub

Huomaa että kun teet näin, luot kopion taulukosta. Vaikka siis Command1:stä poistutaan ja UusiTaulu -taulukkomuuttuja sitä myöten tuhoutuu, säilyy siitä kopio Collectionista. VB6:n rajoituksien takia tarvitaan kuitenkin jokin taulukkomuuttuja, joka täytyy ensin luoda, jotta sen voi sijoittaa Collectioniin.

Voit käyttää tuon kanssa esimerkiksi tämmöisiä syntakseja:

Taulut("Taulu1")(1) = "Hei"
Form1.Caption = Taulut(1)(1)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta