|
| Usercontrols og Class Modules Fra : Kristian Trenskow |
Dato : 09-04-01 17:50 |
|
Jeg sidder i øjeblikket og er ved at udvikle et ActiveX komponent i Visual
Basic. Dertil har jeg added et Class Module, som indeholder nogle
funktioner, til brug af komponentet. Men af en eller anden grund kan jeg
ikke fra et Class Module bruge Subs eller Objecter på komponentet, hvilken
gør at jeg har kommunikation den ene vej, men ikke den anden. Nogle forslag
til hvordan jeg afhjælper problemet?
Hilsen Kristian Trenskow
kristian@trenskow.com
| |
Jens Andersen (09-04-2001)
| Kommentar Fra : Jens Andersen |
Dato : 09-04-01 22:14 |
|
Har du husket at dim din class fil
Dim burgernavn As New Class1
Husk at skrive New før dit classnavn
Mvh
Jens
til@infojens.dk
| |
Tomas Christiansen (09-04-2001)
| Kommentar Fra : Tomas Christiansen |
Dato : 09-04-01 23:06 |
|
Jens Andersen skrev:
> Dim burgernavn As New Class1
Pas på med at bruge New i en Dim-sætning.
Tænk på følgende problem:
Dim objX As New clsX
Set objX = Nothing
MsgBox objX Is Nothing
Hvilket resultat tror du MsgBox giver?
False!!!
Selvom man umiddelbart ville forvente True.
-------
Tomas
| |
Jens Andersen (09-04-2001)
| Kommentar Fra : Jens Andersen |
Dato : 09-04-01 23:28 |
|
Det havde jeg ikke tænkt på, har ikke haft en opgave hvor det problem opstod
Hvordan bruger man så class filer ???
Hvis jeg ikke må sætte New ind virker de ikke som det skal !
Mvh
Jens
til@infojens.dk
| |
Tomas Christiansen (10-04-2001)
| Kommentar Fra : Tomas Christiansen |
Dato : 10-04-01 10:22 |
|
Jens Andersen skrev:
> Det havde jeg ikke tænkt på, har ikke haft en opgave hvor det problem
opstod
>
> Hvordan bruger man så class filer ???
>
> Hvis jeg ikke må sætte New ind virker de ikke som det skal !
Du har en klasse, lad os kalde den K, og ønsker at instantiere et objekt O
af klassen K.
Dette kan gøres med:
Dim O As K
Set O = New K
Nu styrer du selv hvornår objektet skal instantieres, hvis du derimod
bruger:
Dim O As New K
lægger VB noget kode ind HVER ENESTE STED hvor du refererer til O, og hvis O
ikke er instantieret (dvs. at O Is Nothing => True), bliver det implicit
udført en Set O = New K "bag om ryggen" på én. Dette tager (lidt) længere
tid, koster (lidt) mere kode, men det værste er, at man kan have svært ved
at holde styr på hvornår objekter bliver instantieret.
-------
Tomas
| |
|
|