Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Grey Fox
Anmeldungsdatum: 16.02.2005 Beiträge: 13
|
Verfasst am: 01.03.2005, 13:46 Titel: Inventar klappt nicht! |
|
|
Also ich möchte ein Inventar machen!
Doch ich habe das Problem das die Menueanwahl nicht Funktioniert!
Habe
Item(1 To 10) deklariert als array
Itemcounter ist shared und erhöht sich wenn ein Item(Index%) <> "" ist
naja den Rest entnimmt man aus den Code
Mir ist aufgefallen, das die Variable Index% während der ausführung auf 3 Springt, obwohl die For Schleife nur bis Itemanzahl% (also 2) geht!
Code: |
FOR Index% = 1 TO Itemanzahl%
IF Item(Index%) <> "" THEN menuezahlInventar% = menuezahlInventar% + 1 ELSE
NEXT Index%
zahler2% = 0
DO WHILE InventarID% = 1
Index = 0
SELECT CASE INKEY$
CASE CHR$(0) + CHR$(80)
IF zahler2% < menuezahlInventar% THEN zahler2% = zahler2% + 1 ELSE zahler2% = 1
CASE CHR$(0) + CHR$(72)
IF zahler2% > 1 THEN zahler2% = zahler2% - 1 ELSE zahler2% = menuezahlInventar% - 1
CASE CHR$(13)
EXIT DO
CASE CHR$(27)
InventarID% = 0
zahler2% = 666
EXIT DO
END SELECT
LOCATE 1, 1
PRINT ""
PRINT "I------------------------------------------------------------------------------I"
PRINT "I----------------------------Was wollen sie tun???-----------------------------I"
PRINT "I------------------------------------------------------------------------------I"
PRINT ""
PRINT "I------------------------------------------------------------------------------I"
LOCATE (7 + Itemanzahl%), 1
PRINT Some$
FOR Index% = 1 TO Itemanzahl%
IF Item(Index%) <> "" THEN
giant% = 40 - ((LEN(Item(Index%))) / 2)
Position% = LEN(Item(Index%))
IF zahler2% + 1 = Index% THEN
COLOR 15, 4
ELSE COLOR 15, 0
LOCATE (5 + Index%), 1
PRINT "I"
FOR add1% = 2 TO giant%
LOCATE (5 + Index%), add1%
PRINT "-"
NEXT add1%
LOCATE (5 + Index%), add1%
PRINT Item(Index%)
FOR add2% = (giant% + Position% + 1) TO 79
LOCATE (5 + Index%), add2%
PRINT "-"
NEXT add2%
LOCATE (5 + Index%), 80
PRINT "I"
LOCATE (6 + Index%), 1
END IF
ELSEIF Item(Index%) = "" THEN
END IF
NEXT Index%
LOOP
| [/quote] |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 01.03.2005, 16:34 Titel: |
|
|
Auf den ersten Blick könnte ein Fehler vorkommen, weil du
am Anfang der DO WHILE Schleife schreibst
Code: |
DO WHILE InventarID% = 1
Index = 0
|
Es müsste aber
Code: |
DO WHILE InventarID% = 1
Index% = 0
|
sein.
Q(uick)Basic betrachtet Variablen mit dem selben "Namen" aber
unterschiedlichem Ende (z.B. %) als verschiedene Variablen, d.h.
in deinem Falle wird Index% nicht resettet, da du Index ohne %
schreibst.
Könnte es daran liegen??
jb |
|
Nach oben |
|
 |
Grey Fox
Anmeldungsdatum: 16.02.2005 Beiträge: 13
|
Verfasst am: 02.03.2005, 08:50 Titel: |
|
|
Ja dank das ist klar!!!
Aber ich meinte, das schon allein von der Logik das Inventar nicht hinhaut!
Ich wollte eine Prüfung die erstmal prüft ob das Item(Index%) <> "" wenn das der Fall ist dann soll er weiterhin Prüfen ob der zahler2% (von Tastenabfrage) + 1 = Der Derzeit befindlichen Zeile ist (mit Index% geht das hier nicht) Wenn das der Fall dann setze Color 15, 4 ansonsten 15, 0
Schreibe Text und Spaltenzähler + 1
Wenn Item(Index%) = "" ist dann mach nichts |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 02.03.2005, 13:38 Titel: Re: Inventar klappt nicht! |
|
|
Hallo!
Grey Fox hat Folgendes geschrieben: | Mir ist aufgefallen, das die Variable Index% während der ausführung auf 3 Springt, obwohl die For Schleife nur bis Itemanzahl% (also 2) geht! |
Bei FOR...NEXT-Schleifen ist der Wert der Zählvariablen am Ende immer um einen Zählschritt grösser, als der angegebene Endwert.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 02.03.2005, 17:10 Titel: |
|
|
Vielleicht sollte man hier eine DO-LOOP Schleife nehmen,
macht man ja sonst eigentlich nicht, aber hier...
Code: |
Index% = Startwert%
DO
Index% = Index% + 1
LOOP UNTIL Index% = 2
|
jb |
|
Nach oben |
|
 |
|