Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: O co chodzi ??
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004
O co chodzi ??

Witam

Stworzyłem sobie w module typ:

Private Type PhsDrvEnum
    sName As String
    sKey As String
End Type

w funkcji ( w tym samym module) zadeklarowałem sobie tablicę:

Dim DrvEnum() As PhsDrvEnum

Tablica została wypełniona odpowiednimi wartościami
i chcę teraz przekazać ją do innej funkcji w tym samym module - i tu jest problem bo podczas kompilacji wyskakuje błąd coś: "Tylko zdefiniowane przez użytkownika typy mogą coś coś tam"

Co jest nie tak


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

26-12-2004 20:42
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Mam nadzieję Marcinie, że mówiąc "w module" masz na myśli rzeczywiście moduł (bas), a nie klasę czy formę, jeśli tak to poniższy kod chodzi poprawnie i nie ma żadnych komunikatów o błędzie (cytuję go ponieważ nie jestem pewna czy zrozumiałam Twoją wypowiedź):


Option Explicit

Private Type PhsDrvEnum
    sName As String
    sKey As String
End Type

Dim oPh() As PhsDrvEnum

Sub DodUDT()
ReDim oPh(1)
With oPh(0)
    .sKey = "xxx"
    .sName = "nnn"
End With

With oPh(1)
    .sKey = "x224xx"
    .sName = "nrtrenn"
End With
Call Mar_n(oPh)
MsgBox oPh(0).sKey & vbNewLine & oPh(0).sName
End Sub

Public Function Mar_n(NewPh() As PhsDrvEnum)
With NewPh(0)
    .sKey = " ffffffffffxxx"
    .sName = "nnffffffffffn"
End With
End Function



Natomiast jeśli masz na myśli jednak klasę (czy formę, to końcu też klasa) to trochę trudniej w VB, a obszernego wyjaśnienia udziolono np na stronie:

http://www.codecomments.com/Visual_Basic/message277016.html

poczynając od słów:

To use the UDT in the class module and have that class module expose the
UDT, the UDT needs defined as Public in the class module. Declaring it
Public in a .bas file does NOT expose it via the class. You didn't state
whether this class is Public or Private.  Unfortunately, if the class module.......




_____________________________________________
Karolina

27-12-2004 06:31
Pokaż profil karolinavb  Wyślij email do karolinavb   
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Mam dziwne wrażenie, że o czymś nie napisałes w poście...

1) Jaki to moduł (zwykły/klasy)?
2) Jaki błąd (numer i opis)?
3) Podaj jakiś fragment kod, gdzie to przypisujesz, masz bład czy coś w tym rodzaju (co nie znaczy "wklej cały moduł na forum" ).


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

27-12-2004 06:32
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Zwykły moduł - ale problem już rozwiązany - trzeba było w deklaracji dodać nawiasy przy parametrze


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

27-12-2004 11:28
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
Wszystkich odpowiedzi: 3 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1