Jag har lite svårt att förstå VART jag ska lägga in konstantdeklarationen. Generellt sett ska du deklarera variabler (detsamma gäller konstanter) med så litet scope som möjligt. Det betyder att om du bara behöver en viss variabel inuti en enda funktion så deklarerar du den där (med Dim). Om du däremot behöver den på flera ställen i ett formulär eller i en klass så deklarerar du den i huvudet på klassen/formuläret (som Private), ofta kallat "modulnivå-variabel". Tacksamt för ditt redogörande svar, Hultan! =) För övrigt kan det vara bra att lägga in informationen i Tag-egenskapen hos objekten. Hej Hmm, det var något helt okänt i mina ögon men jag ska bevara detta tipsinlägg väl.Vill slippa skriva in siffervärden i koden!
Jag har 3st. checkboxar (check1, check2, check3), 2st. optionbuttons (option1, option2) och en commandbutton (command1) samt en textbox.
I varje kryssruta och alternativknapp finns olika siffervärden:
check1 - 13
check2 - 27
check3 - 21
(dessa tre knappar är placerade i en ramkontroll)
option1 - 9
option2 - 3
(dessa två knappar är även placerad i en enskild ramkontroll)
Programmet ska utföra - vid tryck på knappen command1 - en beräkning, som ska ge den sammanlagda resultatet vid valet av dem valfria knapparna, som sedan ska skrivas ut med siffror i textboxen.
De ovanstående siffervärdena ska vara fasta och jag vill att dessa konstanta variabler ska inte hårdkodas, alltså använda och skriva in istället dess namn; som check1, option2 o.s.v. i kodningen.
Men vart ska konstantdeklarationen (den nedanstående) skrivas in någonstans då?
Private Const check1 As Integer = 13
Private Const check2 As Integer = 27
Private Const check3 As Integer = 21
Private Const option1 As Integer = 9
Private Const option2 As Integer = 5
Är det i koden för knappen "commmand1" eller...??
//KalltKaffe - totally lost...
<i></i>Sv: Vill slippa skriva in siffervärden i koden!
Slutligen har du globala variabler/konstanter som du behöver komma åt överallt i systemet. Dessa deklarerar du i en bas-modul (som Public). Kom dock ihåg att alltid minimera scope:t, och undvik globala variabler när det går att göra det med rimlig instats. Ofta, men inte alltid, är globala variabler ett tecken på design-fel. Som nybörjare behöver man kanske inte oroa sig nämnvärt över det, men ha det i åtanke...
/Per HultqvistSv: Vill slippa skriva in siffervärden i koden!
MVH
//KalltKaffe - ser åter en glödlampa tändas...Sv: Vill slippa skriva in siffervärden i koden!
Sv: Vill slippa skriva in siffervärden i koden!
Som Niklas skriver,använd objektens Tag propertie,en ofta
glömd egenskap ,helt perfekt för detta ändamål.
I Tag lagra man String så du får omvandla en denna princip.
Detta kan du göra redan i Designläge. Eller i Form_Load
check1.Tag = "13"
check2.Tag = "27"
check3.Tag = "21"
(dessa tre knappar är placerade i en ramkontroll)
option1.Tag = "9"
option2.Tag = "3"
Sedan är det bara att plocka
Dim kriteria As Long
If check1.Value = True Then _
kriteria = kriteria + CInt(check1.Tag)
När du sedan skall ta reda på vilket kriteria som gäller väljer du lämpligen
Select Case kriteria
Case Is = 43
'gör något
' osv osv. alla alternativ
Case Else
'kanske du behöver
End Select
ungefär så
/SvenSv: Vill slippa skriva in siffervärden i koden!
Tack.
Tills dess...
//KalltKaffe