Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Loop

Postades av 2003-03-21 21:25:35 - Peter Andersson, i forum visual basic - allmänt, Tråden har 17 Kommentarer och lästs av 532 personer

Ska återställa en del checkboxar. 6 arrayer med 11 knappar i varje. Började med att skriva så här:
<code>
Private Sub cmdReset_Click()
For I = 0 To 10
chk1(I).Value = 0
chk2(I).Value = 0
chk3(I).Value = 0
chk4(I).Value = 0
chk5(I).Value = 0
chk6(I).Value = 0
Next
End Sub
</code>
Funkar inte och kan inte hitta felet. Provade se´n så här, men så omständigt ska man inte behöva göra det.
<code>
Private Sub cmdReset_Click()
For I = 0 To 10
chk1(I).Value = 0
Next
For I = 0 To 10
chk2(I).Value = 0
Next
For I = 0 To 10
chk3(I).Value = 0
Next
For I = 0 To 10
chk4(I).Value = 0
Next
For I = 0 To 10
chk5(I).Value = 0
Next
For I = 0 To 10
chk6(I).Value = 0
Next
End Sub
</code>
Då återställs en knapp/array och klick.
Tack på förhand/Peter


Svara

Sv: Loop

Postades av 2003-03-21 21:39:05 - Jonas Beijer

Testa detta istället

<code>
Private Sub cmdReset_Click()
For I = 0 To 10
chk1(I).Value = 0
Next
End Sub
</code>


Svara

Sv: Loop

Postades av 2003-03-21 22:26:17 - Peter Andersson

Vad är skillnaden (förutom indragen)?


Svara

Sv: Loop

Postades av 2003-03-21 23:41:15 - Peter Andersson

Det funkar utan loop men så kan man ju inte hålla på å "kåda".
<code>
Private Sub cmdReset_Click()

chk1(0).Value = 0
chk1(1).Value = 0
chk1(2).Value = 0
chk1(3).Value = 0
chk1(4).Value = 0
chk1(5).Value = 0
chk1(6).Value = 0
chk1(7).Value = 0
chk1(8).Value = 0
chk1(9).Value = 0
chk1(10).Value = 0

chk2(0).Value = 0
chk2(1).Value = 0
chk2(2).Value = 0
chk2(3).Value = 0
chk2(4).Value = 0
chk2(5).Value = 0
chk2(6).Value = 0
chk2(7).Value = 0
chk2(8).Value = 0
chk2(9).Value = 0
chk2(10).Value = 0

chk3(0).Value = 0
chk3(1).Value = 0
chk3(2).Value = 0
chk3(3).Value = 0
chk3(4).Value = 0
chk3(5).Value = 0
chk3(6).Value = 0
chk3(7).Value = 0
chk3(8).Value = 0
chk3(9).Value = 0
chk3(10).Value = 0

chk4(0).Value = 0
chk4(1).Value = 0
chk4(2).Value = 0
chk4(3).Value = 0
chk4(4).Value = 0
chk4(5).Value = 0
chk4(6).Value = 0
chk4(7).Value = 0
chk4(8).Value = 0
chk4(9).Value = 0
chk4(10).Value = 0

chk5(0).Value = 0
chk5(1).Value = 0
chk5(2).Value = 0
chk5(3).Value = 0
chk5(4).Value = 0
chk5(5).Value = 0
chk5(6).Value = 0
chk5(7).Value = 0
chk5(8).Value = 0
chk5(9).Value = 0
chk5(10).Value = 0

chk6(0).Value = 0
chk6(1).Value = 0
chk6(2).Value = 0
chk6(3).Value = 0
chk6(4).Value = 0
chk6(5).Value = 0
chk6(6).Value = 0
chk6(7).Value = 0
chk6(8).Value = 0
chk6(9).Value = 0
chk6(10).Value = 0

End Sub
</code>

Jag har andra funktioner kopplade till checkboxarna när de ändras, men det ska väl inte störa en For-slinga?


Svara

Sv: Loop

Postades av 2003-03-22 00:03:55 - Benni Svensson

FEL


Svara

Sv: Loop

Postades av 2003-03-22 00:21:51 - Peter Andersson

Jodå SAW, om du kollar min första fråga överst är det just det jag gjort men det funkar inte. Har kommit på att det krockar på något sätt med andra funktioner kopplade till arrayerna. Till varje array har jag en variabel som har värdet av hur många checkboxar som är till. Så här:
<code>
Private Sub chk1_Click(Index As Integer)
Antal1 = 0
For I = 0 To 10
If chk1(I).Value = 1 Then Antal1 = Antal1 + 1
txtAntal1.Text = Antal1 'visar antalet i textruta
Next
End Sub
</code>
Det verkar som om det är här det krockar, men jag fattar inte hur? Klickar jag på återställningsknappen återställs en i varje array för varje gång jag klickar. Men då måste jag loopa varje array för sig. I "ditt" exempel återställs bara den första checkboxen i den första arrayen, sen hänger programmet sig.
/Peter


Svara

Sv: Loop

Postades av 2003-03-22 01:33:30 - Sven Åke Persson

Hej
Var tvungen att kontrollera fungerar ua, vad får du för felmeddelande ?
Du skall alltid dimmensionera variabler, här i As Long

Private Sub Command1_Click()
Dim i As Long
For i = 0 To 10
Check1(i).Value = 0
Check2(i).Value = 0
Next
End Sub

/Sven


Svara

Sv: Loop

Postades av 2003-03-22 11:19:38 - Andreas Hillqvist

Det är inget fel i din kod. Du har antagligen missat namn eller index på någon eller några av dina kontroller.

Man kan även gruppera kontroller i Kollektioner. Kanske inte så användbart i detta fallet. Men visar den för att demonstrera tekniken:
<code>
Private mCheckboxes As Collection

Private Sub cmdReset_Click()
Dim CheckBox As CheckBox
For Each CheckBox In mCheckboxes
CheckBox.Value = vbUnchecked
Next
End Sub


Private Sub Form_Load()
Dim I As Long
Set mCheckboxes = New Collection
For I = 0 To 10
mCheckboxes.Add chk1(I)
mCheckboxes.Add chk2(I)
mCheckboxes.Add chk3(I)
mCheckboxes.Add chk4(I)
mCheckboxes.Add chk5(I)
mCheckboxes.Add chk6(I)
Next
End Sub

Private Sub Form_Unload(Cancel As Integer)
Do While mCheckboxes.Count
mCheckboxes.Remove 1
Loop
End Sub
</code>


Svara

Sv: Loop

Postades av 2003-03-22 13:26:32 - Sven Åke Persson

Hej konstaterar som Andreas att du har en riktig kod.
Felet är som en klalificerad gissning att du missat med index.
Du får gå genom varje av de 6 kolla att dom börjar på 0 och
att det inte fattas någon till 10.

Sen för helv.... tala om hur felmeddelandet lyder."Erfarna" programmerare
känner direkt igen felet(dom har själv haft det).Detta gäller alla Er som
adresserar detta Nybörjar Forum
Mvh programmera mera
/Sven


Svara

Sv: Loop

Postades av 2003-03-23 00:37:11 - Peter Andersson

Felkod:

Runtime error '340':

Control array element '11' doesn't exist


Alla arrayer är från (0) till (10). For-slingan är från 0 till 10. Element '11' är väl (10)? Och den existerar. ???
/Peter


Svara

Sv: Loop

Postades av 2003-03-23 07:32:55 - Håkan Borneland

Hur har du deklarerat din array?

/Håkan


Svara

Sv: Loop

Postades av 2003-03-23 19:14:52 - Sven Åke Persson

Hej
Det betyder bara det att du hänvisar till 11 någonstans.
Du ser väl var programmet stannar.
/Sven


Svara

Sv: Loop

Postades av 2003-03-23 20:04:21 - Peter Andersson

Håkan!
Arrayen deklareras ju automatiskt till (Index As Integer) och det har aldrig varit problem med det tidigare. Värdet för en checkbox är ju antingen 0 eller 1 så Int bör funka. Har gjort liknande i flera program tidigare utan problem. Men nu har jag hållt upp med programmeringen ett år och är lite ringrostig så antagligen är det något simpelt jag missat.

SvenPon!!
Visst ser jag var det stannar. Det stannar i for-slingan på olika ställen beroende på hur många checkboxar som är markerade. Men jag hittar ändå inte felet.

Tack ändå Goa Gubbar, för att ni bryr er. /Peter


Svara

Sv: Loop

Postades av 2003-03-23 20:51:34 - Håkan Borneland

Hej!

Hade du funktioner/kod kopplad till "click" eventet för checkboxen?
Tyckte jag så det tidigare i tråden.
När du ändrar "value" i checkboxen så "utlöser" du ett click event.
Du kör alltså koden som du har lagt in i ditt click event, som är kopplat till kontrollen.
Frågan är vad som händer där?
Kikade på ditt click event såg att du hade "I" som räknare där också.
Frågan är hur du deklarerat "I" är den synlig i hela modulen (d.v.s. är det samma I på båda ställena)?
Efter att loopen i ditt click event körts så har den värdet 10,
om du sen hoppar tillbaka till "huvud" loopen så kommer ju "I" att räknas upp med 1 vilket ger 11.

/Håkan




Svara

Sv: Loop

Postades av 2003-03-23 21:06:10 - Peter Andersson

Tack Håkan, ska kolla detta...


Svara

Sv: Loop

Postades av 2003-03-23 23:55:23 - Sven Åke Persson

Hej
Just det där satt den, så måste det vara. Lurigt.
Den stora missen är att du inte deklarera dina variabler
Allra först i alla program skall alltid stå Option Explicit

Din knapp skall se ut så här

Private Sub cmdReset_Click()
Dim i As Long
For i = 0 To 10
chk1(i).Value = 0
chk2(i).Value = 0
chk3(i).Value = 0
chk4(i).Value = 0
chk5(i).Value = 0
chk6(i).Value = 0
Next
End Sub
/Sven


Svara

Sv: Loop

Postades av 2003-03-24 00:13:41 - Andreas Hillqvist

Jag är imponerad!

Har inte läs tråden tillräckligt. Jag missade själva click koden.
Själv deklarerar jag alla variabler inom proceduren. Om det inte krävs att flera skall komma åt värdet.


Svara

Sv: Loop

Postades av 2003-03-24 01:17:50 - Peter Andersson

Hej hej!
Tänkte ju inte på att min resetknapp även startade andra for-slingor. Ändrade bara I till J så funkar det som det ska.
Tack allihop/Peter


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 167
27 952
271 704
860
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies