2016-11-12 3 views
1

J'ai ce type de données défini par l'utilisateur:Comment retourner un tableau Dymamic de types de données utilisateur dans Lotusscript funtion

Type Image 
    Filename As String 
    Label As String 
End Type 

Et je veux créer une fonction qui peut retourner un tableau d'images. Jusqu'à présent, je l'ai créé ceci:

Function GetImages() As Variant 
    Dim images(1) As Image 

    Dim image0 As Image 
    image0.Filename = "test0.txt" 
    image0.Label = "test0" 

    Dim image1 As Image 
    image1.Filename = "test1.txt" 
    image1.Label = "test1" 

    images(0) = image0 
    images(1) = image1 

    GetImages = images 
End Function 

La ligne "GetImages = images" me donnent cette erreur de compilation: Type mismatch sur: IMAGES

Toutes les idées?

Répondre

1

Vous ne pouvez pas convertir un tableau de types en un variant.

Utilisation Class au lieu de Type:

Class Image 
    Public Filename As String 
    Public Label As String 
End Class 

Function GetImages() As Variant 
    Dim images(1) As Image 

    Dim image0 As New Image 
    image0.Filename = "test0.txt" 
    image0.Label = "test0" 

    Dim image1 As New Image 
    image1.Filename = "test1.txt" 
    image1.Label = "test1" 

    Set images(0) = image0 
    Set images(1) = image1 

    GetImages = images 
End Function 

Vous pouvez accéder à des éléments de classe comme éléments de type:

Dim imgs As Variant 
imgs = GetImages() 
Print imgs(0).filename 
+0

Une alternative à l'aide d'un tableau est d'utiliser une liste, surtout si le nombre d'éléments changements. –