Gjest Slettet-aNZFa3 Skrevet 3. juni 2007 Del Skrevet 3. juni 2007 (endret) Dette er koden min: Dim Money As IntegerDim CompName As Char Money = 10000 CompName = "Sarco Gaming" Hvordan får jeg dem til å dukke opp en en text-box når de ikke er det samme som nå. Og åssen får jeg lagd en dialog slik at brukeren skal taste inn CompName slik at den endrer seg og slik at programmet husker det? EDIT: jeg bruker Visual Studio 2005 Express Endret 3. juni 2007 av Slettet-aNZFa3 Lenke til kommentar
HDSoftware Skrevet 3. juni 2007 Del Skrevet 3. juni 2007 Definer to TEXT bokser på vinduet. Kall den ene for txtMoney og den andre for txtComName Dermed kan du gjøre slik: me.txtMoney.text = Money me.txtComName.text = CompName Permanent lagring er derimot et helt annet kapittel. Der har du drøssevis av måter å gjøre det på. Jeg har en masse innlegg rundt omkring her som omhandler lagring i tekst filer. Se på dem så finner du enkle og greie metoder for lagring. HDH Lenke til kommentar
aadnk Skrevet 3. juni 2007 Del Skrevet 3. juni 2007 (endret) Den letteste formen for lagring av variabler får du gjennom Settings-funksjonaliteten i Visual Studio 2005. Den finner du ved å dobbelklikke på My Project og velge Settings. I dette tilfellet må du skrive inn Money og CompName over to rader under Name og sette Type for Money til Integer. For å knytte tekstboksene opp mot disse to innstillingene, kan du gjøre som følger: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Laster inn verdier txtMoney.Text = My.Settings.Money txtCompName.Text = My.Settings.CompName End Sub Private Sub txtMoney_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtMoney.TextChanged ' Oppdater endring My.Settings.CompName = txtMoney.Text End Sub Private Sub txtCompName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtCompName.TextChanged My.Settings.CompName = txtCompName.Text End Sub Du kan få frem en dialogboks ved å bruke InputBox-funksjonen: txtCompName.Text = InputBox("Skriv inn navn på datamaskin") Edit: For øvrig må du bruke String, ikke Char, for å lagre tekst i VB .NET. Sistnevnte kan kun inneholde ett enkelt tegn. Endret 3. juni 2007 av aadnk Lenke til kommentar
Gjest Slettet-aNZFa3 Skrevet 4. juni 2007 Del Skrevet 4. juni 2007 OK. nå har jeg et annet problem, erroren jeg får er: "Name 'Money' is not declared". Her koden min. Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim Money As Integer Dim CompName As String Money = 10000 CompName = "Sarco Gaming" ToolStripStatusLabel2.Text = Money End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Money += 1000 End Sub End Class Lenke til kommentar
Harald Staff Skrevet 4. juni 2007 Del Skrevet 4. juni 2007 Variabler som er deklarert inne i en Sub, forsvinner og dør ved End Sub. Du må deklarere den utenfor, f.eks på toppen av modulen. Slikt kalles "Scope", foreslår at du søker og leser litt, det er nyttig og nødvendig kunnskap. HTH. Beste hilsen Harald Lenke til kommentar
Gjest Slettet-aNZFa3 Skrevet 7. juni 2007 Del Skrevet 7. juni 2007 Jeg skjønte ikke helt det med scoping, kan noen prøve å forklare det for meg på en lett måte? Lenke til kommentar
GeirGrusom Skrevet 7. juni 2007 Del Skrevet 7. juni 2007 (endret) IF X = Y THEN }= Scope A VARIABEL VAR_A ' Innenfor Scope A VAR_A = 100 IF Y = Z THEN }= Scope B VARIABEL VAR_B ' VAR_B blir deklarert innenfor Scope B MsgBox(VAR_A) ' Går fint, for vi er fortsatt innen samme scope END IF } End Scope B, her vil VAR_B gå ut av scope, og dermed bli ugyldig MsgBox(VAR_B) ' Ugyldig, VAR_B er gått ut av scope MsgBox(VAR_A) ' Gyldig, VAR_A er fortsatt i scope END IF } End Scope A, VAR_A går ut av scope Som man ser, så "arves" variabler innover koden, men går ikke til lavere nivåer en der de er deklarert. Endret 7. juni 2007 av GeirGrusom Lenke til kommentar
Gjest Slettet-aNZFa3 Skrevet 8. juni 2007 Del Skrevet 8. juni 2007 Jeg skjønte det forsatt ikke helt, kan du bruke variablene mine som eksempel (tipper jeg skjøner det bedre da) Lenke til kommentar
aadnk Skrevet 8. juni 2007 Del Skrevet 8. juni 2007 Jeg skjønte det forsatt ikke helt, kan du bruke variablene mine som eksempel (tipper jeg skjøner det bedre da) 8812439[/snapback] Dersom variablene er deklarert innenfor prosedyren, varer de bare ut til prosedyren er slutt. De kan ikke nås i en annen prosedyre. For å unngå feilmeldingen, må du derfor flytte dem opp et hakk: Public Class Form1 Dim Money As Integer Dim CompName As String Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Money = 10000 CompName = "Sarco Gaming" ToolStripStatusLabel2.Text = Money End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Money += 1000 End Sub End Class Lenke til kommentar
Jonas Skrevet 8. juni 2007 Del Skrevet 8. juni 2007 Finnes mange artikkler som omhandler variabel-scope, se her. Variable Scope for New Programmers virker ganske fin, uten at jeg har lest gjennom hele. Lenke til kommentar
Gjest Slettet-aNZFa3 Skrevet 8. juni 2007 Del Skrevet 8. juni 2007 Jeg skjønte det forsatt ikke helt, kan du bruke variablene mine som eksempel (tipper jeg skjøner det bedre da) 8812439[/snapback] Dersom variablene er deklarert innenfor prosedyren, varer de bare ut til prosedyren er slutt. De kan ikke nås i en annen prosedyre. For å unngå feilmeldingen, må du derfor flytte dem opp et hakk: Public Class Form1 Dim Money As Integer Dim CompName As String Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Money = 10000 CompName = "Sarco Gaming" ToolStripStatusLabel2.Text = Money End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Money += 1000 End Sub End Class 8812674[/snapback] Tusen Takk nå skjønner jeg det Lenke til kommentar
Gjest Slettet-aNZFa3 Skrevet 8. juni 2007 Del Skrevet 8. juni 2007 (endret) Men hvis jeg har en "Form" til, åssen får jeg da variablen "Money" til å være i den også? EDIT: trenger svar fort. Endret 8. juni 2007 av Slettet-aNZFa3 Lenke til kommentar
aadnk Skrevet 8. juni 2007 Del Skrevet 8. juni 2007 (endret) Men hvis jeg har en "Form" til, åssen får jeg da variablen "Money" til å være i den også? Det enkleste blir å deklarere variablene med Public-nøkkelordet slik: Public Money As Integer Da kan du referere/bruke variabelen i Form2 ved å skrive Form1.Money, dersom den første formen heter Form1. Endret 8. juni 2007 av aadnk 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å