Avatar billede shadowdance Nybegynder
18. april 2003 - 20:56 Der er 4 kommentarer og
1 løsning

Om objekt-referencer

Hvis man skal bruge en control i Visual Basic, fx Common Dialog, går man sædvanligvis ind i components, og add´er den til projektet.

I dag gik et lys op for mig, da jeg læste et indlæg. En anden måde at lave en common dialog er at bruge:

-----------------------
Dim CmnDialog As Object

Set CmnDialog = CreateObject("MSComDlg.CommonDialog")
CmnDialog.showopen
-----------------------

Det er jo helt fantastisk. Men hvordan fanden i anden skulle jeg vide hvad referencen var til objektet("MSComDlg.CommonDialog"), hvis jeg ikke tilfældigvis havde læst det?

Fra mit perspektiv er der to muligheder:

1) Der er en overskuelig og brugbar liste til al den slags et eller andet sted.

2) Dette er ældgamle hemmeligheder, som kun nedarves i den mundtlige overdragelse fra hviskende tunger; kun de privilegerede kender til disse gådefulde objekt-referencer, så derfor er det vigtigt at lytte når de viise beslutter sig for at afsløre endnu en hemmelighed.


Hvilken af disse forklaringer er mest sandsynlig?
Avatar billede Slettet bruger
18. april 2003 - 22:17 #1
Det er ikke pænt at oprette en instans af en CommonDialog vha. CreateObject - det smarteste er at tilføje referencen via Project/Components, som du selv nævner. Hermed forsøger applikationen at "binde sig til" referencerne under opstart, i stedet for at gøre det, når den når til en linje med CreateObject.

Mht. at finde navne som "MSComDlg.CommonDialog", kan du gøre det at du tilføjer en reference til en given komponent i et VB Project og trykker F2. Her vil du blive præsenteret for en Object Browser, der viser alle de tilgængelige objekter og bibliotekter i projektet. Har du eksempelvis tilføjet CommonDialog til dit projekt, vil du øverst (i en combobox) have mulighed for at vælge et element, kaldet "MSComDlg" (også kaldet et bibliotek/library). Herunder findes nogle klasser - heriblandt "CommonDialog" (klasse). Ved at finde de to elementer, kan du så nå frem til at du vha. CreateObject kan bruge "MSComDlg.CommonDialog" til at oprette en instans af denne klasse (syntaksen er altså "biblioteksnavn.klassenavn".
Avatar billede shadowdance Nybegynder
18. april 2003 - 22:49 #2
Du er min gud. Hvorfor har du ikke oprettet det som et svar, så jeg kan smide point efter dig?
Avatar billede Slettet bruger
19. april 2003 - 14:02 #3
60 point er alt for meget. Hvad siger du til at vi deler (15 til mig og 45 til dig)?  :)
Avatar billede shadowdance Nybegynder
19. april 2003 - 17:01 #4
Næh, du får det hele... det går nok.
Avatar billede Slettet bruger
19. april 2003 - 17:40 #5
Så siger jeg tak - selvom jeg ikke bruger mine points til noget som helst.  ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester