Wie könnt ich das besser schreiben
Übersicht

![]() |
regaaBetreff: Wie könnt ich das besser schreiben |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich seh das das grade zu danach schreit eine for schleife zu verwenden.
Code: [AUSKLAPPEN] If mx> -1 And mx<menue_breite(0)+(5*0) sel_menue=1 Else If mx> -1+menue_breite(0)+(5*1) And mx<menue_breite(0)+menue_breite(1)+(5*1) sel_menue=2 Else If mx> -1+menue_breite(0)+menue_breite(1)+(5*2) And mx<menue_breite(0)+menue_breite(1)+menue_breite(2)+(5*2) sel_menue=3 Else If mx> -1+menue_breite(0)+menue_breite(1)+menue_breite(2)+(5*3) And mx<menue_breite(0)+menue_breite(1)+menue_breite(2)+menue_breite(3)+(5*3) sel_menue=4 Else sel_menue=0 EndIf Aber ich komm einfach nicht drauf wie ich das machen sollte ![]() |
||
![]() |
Ctuchik |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn ich das problem richtig verstanden hab könnte es so gehen
Code: [AUSKLAPPEN] sel_menue = 0 For a = 0 To 3 xanf = a * 5 For b = 1 To a xanf = xanf + menue_breite(b-1) Next If mx > xanf And mx < xanf + menue_breite(a) sel_menue = a+1 End If Next Aber wäre es nicht einfacher und sinnvoller die Anfangs- und End-x-Werte der menues zu speichern, statt der breite und das dann so zu testen: Code: [AUSKLAPPEN] menue(0,0) = 0 menue(0,1) = 100 menue(1,0) = 105 menue(1,1) = 205 ... For a=0 To 3 If mx > menue(a,0) And mx < menue(a,1) Then sel_menue = a+1 End If Next mfG Ctuchik |
||
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ctuchik hat Folgendes geschrieben: Aber wäre es nicht einfacher und sinnvoller die Anfangs- und End-x-Werte der menues zu speichern, statt der breite und das dann so zu testen: Code: [AUSKLAPPEN] menue(0,0) = 0 menue(0,1) = 100 menue(1,0) = 105 menue(1,1) = 205 ... For a=0 To 3 If mx > menue(a,0) And mx < menue(a,1) Then sel_menue = a+1 End If Next mfG Ctuchik Danke für den Tipp ![]() Code: [AUSKLAPPEN] menue_abstand=0 For i=0 To g_menue_size i2=0 Color 0,255,0;Rnd(1,255),0 Rect x+menue_abstand,y,menue_breite(i),20 Color 255,255,255 Text x+menue_abstand,y,menue$(i,0) If mx<menue_breite(0) Then abzug=menue_breite(0) sel_menue=0 If mx> -1 And mx<menue_breite(0)+(5*0) sel_menue=1 Else If mx> -1+menue_breite(0)+(5*1) And mx<menue_breite(0)+menue_breite(1)+(5*1) sel_menue=2 Else If mx> -1+menue_breite(0)+menue_breite(1)+(5*2) And mx<menue_breite(0)+menue_breite(1)+menue_breite(2)+(5*2) sel_menue=3 Else If mx> -1+menue_breite(0)+menue_breite(1)+menue_breite(2)+(5*3) And mx<menue_breite(0)+menue_breite(1)+menue_breite(2)+menue_breite(3)+(5*3) sel_menue=4 Else If mx> -1+menue_breite(0)+menue_breite(1)+menue_breite(2)+menue_breite(3)+(5*3) And mx<menue_breite(0)+menue_breite(1)+menue_breite(2)+menue_breite(3)+menue_breite(4)+(5*3) sel_menue=5 Else sel_menue=0 EndIf If sel_menue=i+1 For i2=1 To menue_stop(i) Color 255,0,0;Rnd(255) Rect x+menue_abstand,(y+i2)*20,menue_unter_breite(i),20 Color 0,0,0 Rect x+menue_abstand,(y+i2)*20,menue_unter_breite(i),20,0 Color 255,255,255 Text x+menue_abstand,(y+i2)*20,menue$(i,i2) Next sel_menue=0 EndIf menue_abstand=menue_abstand+menue_breite(i)+5 Next Ist bestimmt echt easy, aber ich komm da einfach nicht drauf ![]() |
||
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ctuchik hat Folgendes geschrieben: wenn ich das problem richtig verstanden hab könnte es so gehen
Code: [AUSKLAPPEN] sel_menue = 0 For a = 0 To 3 xanf = a * 5 For b = 1 To a xanf = xanf + menue_breite(b-1) Next If mx > xanf And mx < xanf + menue_breite(a) sel_menue = a+1 End If Next [/code] mfG Ctuchik Ok, das war die Lösung, danke. Hmm, so kompliziert hab ich da gar nid gedacht. Zitat: Aber wäre es nicht einfacher und sinnvoller die Anfangs- und End-x-Werte der menues zu speichern ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group