HDSoftware Skrevet 4. oktober 2006 Del Skrevet 4. oktober 2006 Heisan folkens Jeg har en liten utfordring å løse. Fr amitt tidligere liv (Clarion) kunne jeg lage en INC file som inneholder alle konstanter jeg trenger, definert eksempelvis slik: LEVEL..................ITEMIZE(0),PRE BENIGN.................EQUATE NOTIFY..................EQUATE FATAL....................EQUATE APPLICATION.........EQUATE ...........................END Alternativt kunne jeg definere disse konstanter slik: LEVEL:BENIGN.........EQUATE(0) LEVEL:NOTIFY..........EQUATE(1) LEVEL:FATAL............EQUATE(2) LEVEL:APPLICATION.EQUATE(3) (Dere skjønner sikkert at jeg bruker ... for å representere mellomrom og innrykk her. Klarer ikke få til innrykk etc. her, men det er uviktig.) ok. Hvis jeg trengte disse kunne jeg enkelt inkludere den aktuelle filen direkte inn i applikasjonen slilk: include('C:\...\...\Inkludertfil.inc') Saken er at jeg på denne måten kan lage meg et fast konstant sett og benytte disse i alle programmene mine. Jeg ønsker jo å kunne gjøre dette i Visual Basic også. Noen forslag? Jeg har jo sett at jeg kan skrive slik: const LEVEL_BENIGN as byte = 0 const LEVEL_Notify as byte = 1 o.s.v. men dette vil jo bare være tilgjengelig i den aktuelle modulen. Jeg vil jo ikke definere disse konstantene i selve programmet, men i en fil jeg kan inkludere ett eller annet sted. for å unngå skrivefeil etc. Helst på et SCOPE så høyt som mulig. Håper noen kan hjelpe meg her. Ole Lenke til kommentar
Jonas Skrevet 5. oktober 2006 Del Skrevet 5. oktober 2006 const LEVEL_BENIGN as byte = 0 const LEVEL_Notify as byte = 1 .. kan også skrives slik: Public/Global const LEVEL_BENIGN as byte = 0Public/Global const LEVEL_Notify as byte = 1 Om du vil har litt mer funksjonalitet, ikke hardkode alt og ha mulighet til å endre i ettertid kan du feks. implentere en INI-database. Utrolig enkelt med GetPrivateProfileInt og WritePrivateProfileString. Aadnk forklarer det her. Lenke til kommentar
HDSoftware Skrevet 5. oktober 2006 Forfatter Del Skrevet 5. oktober 2006 const LEVEL_BENIGN as byte = 0 const LEVEL_Notify as byte = 1 .. kan også skrives slik: Public/Global const LEVEL_BENIGN as byte = 0Public/Global const LEVEL_Notify as byte = 1 Om du vil har litt mer funksjonalitet, ikke hardkode alt og ha mulighet til å endre i ettertid kan du feks. implentere en INI-database. Utrolig enkelt med GetPrivateProfileInt og WritePrivateProfileString. Aadnk forklarer det her. 7006128[/snapback] Heisan, og takk for svar Å lage konstanter er ikke selve problemet. CONST gjør jobben mer en bra nok. Å bruke en INI fil er ikke det samme som å ha en konstant. Konstanter tar ikke plass i minnet og er på mange måter bare et compiler direktiv. Det geniale med en include file er jo at den kan vedlikeholdes på utsiden av applikasjonene og brukes av et utall applikasjoner. Det er jo nesten en nødvendighet å benytte dette hvis man åpner en winsock og starter en komunikasjon over denne. Et alternativ til en INI database er jo å lage en konstant klasse og rett og slett opprette objekter av denne der hvor de trengs, men dette er jo en mer krevende prosess for programmet (Visual Basic er vel ikek det raskeste i utgangspunktet). Dessuten blir jo dette det samme som å hente opp runtime fra en INI file. Ole Lenke til kommentar
Jonas Skrevet 5. oktober 2006 Del Skrevet 5. oktober 2006 Aha, missforstod litt i første innlegg. Include, noe av det samme i PHP? Isåfall har jeg aldri sett noe lignende i VB, men jeg skal ikke si noe for sikkert. Kansje noen andre vet. Lenke til kommentar
aadnk Skrevet 5. oktober 2006 Del Skrevet 5. oktober 2006 Formoder dette er til VB6? I så fall burde det ikke by på noe problem å legge alle konstantene i en modul og deretter referere til denne filen ved å simpelthen inkludere den i prosjektet. VB6 tar seg dernest av den relative posisjoneringen. Dersom du har behov for mer avanserte funksjoner, finnes (i hvert fall i de mer utvidede utgaver av VB6) en kildekodedatabase som automatiserer denne prosessen (Source Safe). Jeg har imidlertid aldri benyttet meg av denne funksjonaliteten, så jeg kan dessverre ikke si noe om hvor godt det fungerer. Lenke til kommentar
HDSoftware Skrevet 6. oktober 2006 Forfatter Del Skrevet 6. oktober 2006 Formoder dette er til VB6? I så fall burde det ikke by på noe problem å legge alle konstantene i en modul og deretter referere til denne filen ved å simpelthen inkludere den i prosjektet. VB6 tar seg dernest av den relative posisjoneringen. Dersom du har behov for mer avanserte funksjoner, finnes (i hvert fall i de mer utvidede utgaver av VB6) en kildekodedatabase som automatiserer denne prosessen (Source Safe). Jeg har imidlertid aldri benyttet meg av denne funksjonaliteten, så jeg kan dessverre ikke si noe om hvor godt det fungerer. 7010836[/snapback] Heisan, du formoder nok feil ;-) Dette er Visual Basic 2005, men jeg vil tro det ikke spiller noen rolle for jeg kan jo legge til moduler i prosjektet på samme måte der. Så det du sier er at jeg kan lage en modul (fra skratsj) og lagre denne ett eller annet sted på disken. Dernest kan jeg inkludere denne modulen i prosjektene mine for så å ha dem tilgjengelige. Dette er helt i tråd med hva jeg ønsker. Nå må jeg innrømme at jeg faktisk har prøvd dette her, men vet ikek helt hvordan jeg skal benytte meg av disse modulene. Så vidt jeg vet (iallefall fra andre verktøy) så har en modul et egen scope. Det vil jo si at det som er definert i den aktuelle modul kunn er tilgjengelig for den modulen og ikke på tvers. Finnes det en "global" modul i appen? Et slags "top scope", for å såfall kan jo denne inkluderes der. Ole Lenke til kommentar
Jonas Skrevet 6. oktober 2006 Del Skrevet 6. oktober 2006 I VB6 skrives det slik jeg viste over, burde være noe lignende i .net. Lenke til kommentar
HDSoftware Skrevet 6. oktober 2006 Forfatter Del Skrevet 6. oktober 2006 I VB6 skrives det slik jeg viste over, burde være noe lignende i .net. 7013113[/snapback] Tror du har rett i det. Er vel strengt tatt ikek store forskjellen på VB enten den heter 6 eller .NET eller hva den nå heter. Er vel bare .NET tillegget som gjør 2005 spesiel - tror iallefal jeg da, men jeg kan jo ta feil. Ole (Still n00b) Lenke til kommentar
GeirGrusom Skrevet 7. oktober 2006 Del Skrevet 7. oktober 2006 Du kan ikke inkludere kode på samme måten som det gjøres i Clarion, C, ASP.NET eller PHP. Du må legge til filene i prosjektet, filen blir brukt som en referanse, hvis du ikke kopierer den selv. Klasser, konstanter og variabler må deklareres som Public for at det andre prosjektet kan få tak i det. Det er stor forskjell mellom VB6 og VB.NET forresten, to veldig forskjellige språk. Lenke til kommentar
HDSoftware Skrevet 9. oktober 2006 Forfatter Del Skrevet 9. oktober 2006 Du kan ikke inkludere kode på samme måten som det gjøres i Clarion, C, ASP.NET eller PHP.Du må legge til filene i prosjektet, filen blir brukt som en referanse, hvis du ikke kopierer den selv. Klasser, konstanter og variabler må deklareres som Public for at det andre prosjektet kan få tak i det. Det er stor forskjell mellom VB6 og VB.NET forresten, to veldig forskjellige språk. 7020529[/snapback] Fantastisk. Jeg ser jo dette nå når jeg høyreklikker på Prosjektet. Der har jeg jo hele tiden bruke "New Item" og rett og slett oversett "Use Existing Item" HMM!! Hvor blind går det an å være! Svaret lå jo der hele tiden. Skjønner du kjenner til Clarion. Tør jeg spørre hvor du har brukt det og hvor lenge? Er jo genialt hvis det faktisk er folk her som vet lit om Clarion for da blir det jo mye enklere (iallefall for meg ;-) å spørre om ekvivalente løsninger. Har selv brukt Clarion siden begynnelsen av 90 tallet. Ole Lenke til kommentar
GeirGrusom Skrevet 11. oktober 2006 Del Skrevet 11. oktober 2006 Hehe, faren min er en racer på Clarion, han var så glad i det fordi det var så enkelt, jeg har vært borti mange programmeringsspråk, Clarion er et av dem. Lenke til kommentar
HDSoftware Skrevet 12. oktober 2006 Forfatter Del Skrevet 12. oktober 2006 Hehe, faren min er en racer på Clarion, han var så glad i det fordi det var så enkelt, jeg har vært borti mange programmeringsspråk, Clarion er et av dem. 7048776[/snapback] Hehe. Ikke umulig at jeg dermed kjenner Faren din ;-) Det er ikke så mange Clarion folk her til lands skjønner du. Hva heter han? Kjenner en som har en sønn som heter Geir. Kan jo være deg det. Ole Lenke til kommentar
GeirGrusom Skrevet 12. oktober 2006 Del Skrevet 12. oktober 2006 Faren min heter Finn Jeg heter egentlig ikke Geir, grunnen til navnet mitt var en runde Half-Life mot kameratene mine, der det ble litt mye navnebytting og Geir Grusom var det siste jeg skrev inn før vi ble ferdig, og også det navnet som ble sittende igjen hver gang vi spilte Half-Life. Lenke til kommentar
HDSoftware Skrevet 12. oktober 2006 Forfatter Del Skrevet 12. oktober 2006 (endret) Faren min heter Finn Ok. Ingen i min Clarion base som heter Finn. Da kjenner jeg han sikkert ikke ;-) Du skjønner, jeg var tidligere en del av firmaet som importerte Clarion og drev også en Clarion kanal både i form av news og IRC. Vet derfor om de fleste som har Clarion her i landet. Ole Endret 12. oktober 2006 av HDSoftware Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå