For ... Each beeinflussen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

wunderkind

Betreff: For ... Each beeinflussen

BeitragMi, Feb 09, 2005 12:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin,

gibt es eine Möglichkeit eine For .. Each direkt zu beeinflussen? Ich möchte den Pointer, der immer gerade auf das nächste (oder aktuelle?) Objekt zeigt, verändern zum Beispiel fünf Objekte weiter vor- oder zurücksetzen. In einer einfachen For .. Next Schleife ist das ohne weitere möglich. Dort könnte ich den Zähler direkt verändern und hätte das gewünschte Resultat.

Oder muss ich gar von Hand durch die Objekte gehen und dann After / Before herumspringen? Eine simple Lösung wäre mir lieb Wink.
  • Zuletzt bearbeitet von wunderkind am Mi, Feb 09, 2005 12:20, insgesamt einmal bearbeitet

simi

BeitragMi, Feb 09, 2005 12:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Soviel ich weiss geht das nicht. Du könntest etwas mit Handle und Object machen, was aber auch relativ kompliziert wird....

BladeRunner

Moderator

BeitragMi, Feb 09, 2005 12:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Type test
Field id
Field objekthandle
End Type

For i= 1 To 100
a.test=New test
a\id = i
Next



For a.test = Each test
   If a\id=25 Then
       For i=1 To 70
         a = After a
      Next
   End If
Print a\id
Next


Was besseres fällt mir auf Anhieb nit ein.
Du könntest natürlich alle Handles in einem Array speichern und dann mit objekt hinspringen, aber damit würdest du ja einen der größten Vorteile von Types wieder negieren.

Ob das manuelle after-gehopse wirklich flotter/sinniger ist als die Schleife einfach mit each weiterlaufen zu lassen sei dahingestellt.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

morszeck

BeitragMi, Feb 09, 2005 12:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Type typ
   Field x
End Type


Local n.typ

For i = 1 To 100
   n = New typ
   n\x = i
Next




Local t.typ = First typ


step_ = 5

Repeat

   count = count + 1

   If Not (count Mod step_) Then
      Print t\x
   EndIf

   t = After t
      
Until (t = Null )
      


Print "ende"

WaitKey()
 

wunderkind

BeitragMi, Feb 09, 2005 12:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für eure Tipps. Der Code bewegt den Pointer jetzt tatsächlich mittels After / Before. Funktioniert reibungslos und sind nur sechs Zeilen Code.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group