Hejsan, Tjingeling! Hejsan, Tjingeling igen! hej, Jag hade precis den här frågan nån gång i höstas. Efter ett tag framkom det att detta bara kan låta sig göras om programmet är en ActiveX (tror jag att svaret var) av någon underlig anledning. OK, tack. VB har lite konstiga regler ibland har jag märkt när det gäller bla typer. Om du bara ska använda klassen eller medlemmen inom projektet. Kan du lätt lösa det genom att deklarera dem som Frind Istället för som Public...egna typer i klasser
Jag har definerad en egen public type i en vanlig module (.bas). Jag försökte sedan att använda typen till att definera variabler i en klass och att använda Public Property get/let med samma type som argument. Men jag får alltid (samma vid användande av sub och function) detta felmeddelande:
"Compile error:
Only public user defined types defined in public object modules can be used as parameters or return types for public procedures of class modules or as fields of public user defined types"
Jag vill allså kunna använda samma type i olka moduler/klasser och att använda den som argument i sub/functions.
Hoppas någon kan hjälpa mig!
GorSv: egna typer i klasser
Det ar lattare att se problemet om du berattar hur du skrivit. Antar att det ar nat sant har?
i modulen:
Public type X
y as string
end type
i form:
...
dim temp as X
...
temp.y="innehall"
...
Visa garna!
/CissiSv: egna typer i klasser
Det var något liknade, fast det var med egna classer.
Ungerfär såhär:
MODULES (.bas)
Option Explicit
Public objA As cA
Public objB As cB
Public Type test
t1 As Integer
t2 As String
End Type
Sub main()
Set objA = New cA
Set objB = New cB
End Sub
CLASS cA
Option Explicit
Private cTmp As test
Public Property Get tmp() As test
tmp = cTmp
End Property
CLASS cB
Option Explicit
Private a As test
Public Sub b(t)
a = objA.tmp
End Sub Sv: egna typer i klasser
Kollade lite i mina bocker och fick fram en liten tabell dar det framgar att nar man anvander klasser sa kan typerna bara vara privata.
Tabellen:
Procedure/Module: You can create as: Variables of T can be:
Procedures Not applicable Local only
Standard modules Private/Public Private/Public
Form modules Private only Private only
Class modules Private only Private only
/CissiSv: egna typer i klasser
Jag ha hittat ungerfär samma tabell men en sak som gör jag fortsätter jobbar på detta är att detta funkar:
CLASS cA
Private cTmp As test
Public Function getT1() As String
getT1 = cTmp.t1
End Function
Så det funkar att definera en variable som en egendefinerad Type och det går att skicka tillbaka varje del av typen. men det verkar inte fungerar att skicka tillbaka hela typen?Sv: egna typer i klasser
- HansSv: egna typer i klasser
Sv: egna typer i klasser