Hinter einem Element etwas einfügen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

BlitzChecker

Betreff: Hinter einem Element etwas einfügen

BeitragSo, Jul 30, 2006 14:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe folgendes Problem:

Ich habe ein Type.
Dieses Type gehe ich in einer Schleife durch (For Each) und wenn ein bestimmtes Ereignis eintritt, soll hinter diesem Element ein neuer eintrag eingefügt werden.

Doch wie mache ich das?

Hubsi

BeitragSo, Jul 30, 2006 14:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit ql:Insert, ql:After, ql:Handle und ql:Object
BlitzBasic: [AUSKLAPPEN]
Type test
Field zahl
End Type

For i=1 To 10
t.test=New test
t\zahl=i
Next

While Not KeyHit(1)
Cls
zaehler=0 ; Nur für Ausgabe

For t.test=Each test

If t\zahl=5 ; Immer nach der 5 einfügen
If KeyHit(57)
tmp=Handle(t.test)
t.test=New test
t\zahl=Rand(11,100) ; Eine Zahl wählen die nicht in die
; Reihe passt, damit mans klar erkennen kann
Insert t After Object.test(tmp)
EndIf
EndIf

Text 10,zaehler*15+10,t\zahl
zaehler=zaehler+1
Next
Flip
Wend
End
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

BlitzChecker

BeitragSo, Jul 30, 2006 20:38
Antworten mit Zitat
Benutzer-Profile anzeigen
thx,
das wars Very Happy

Edit:
Noch ne Frage:
Ich habe ein Type, das so aufgebaut ist:
Code: [AUSKLAPPEN]
Type ZeichenWritten
    Field Zeichen
    Field akt
End Type


Wenn ich jetzt das Type wieder mit ner Schleife durchlauf, und akt = 1 ist, dann soll beim Jetzigen Eintrag akt = 0 sein und beim Eintrag davor akt = 1. Soweit nicht so schwer:
Code: [AUSKLAPPEN]
For Nachricht.ZeichenWritten = Each ZeichenWritten
    If Nachricht\akt = 1 Then
        Nachricht\akt = 0
        ;Hier ist die Stelle, die ich nicht hinkrieg
    EndIf
Next


Aber wie mach ich jetzt, dass beim Eintrag davor akt = 1 ist?
(ich hab das mit Before und so noch nicht so ganz begriffen anzuwenden Embarassed )

BtbN

BeitragSo, Jul 30, 2006 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Mach eine extra Variable, in der du den vorherigen eintrag speicherst, und greif dann auf diese zu.

BlitzChecker

BeitragSo, Jul 30, 2006 21:48
Antworten mit Zitat
Benutzer-Profile anzeigen
also so:
Code: [AUSKLAPPEN]
For Zeichen.ZeichenWritten = Each ZeichenWritten
   If Zeichen\akt <> 1 Then
      merkvar = Handle(Zeichen)
   Else
      Zeichen\akt = 0
      Exit
   EndIf
Next
Nachricht.ZeichenWritten = Object.ZeichenWritten(merkvar)
Nachricht\akt = 1

oder wie?
 

Johannes

BeitragMi, Aug 09, 2006 15:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich vermute mal, so:
Code: [AUSKLAPPEN]

For Nachricht.ZeichenWritten = Each ZeichenWritten
    If Nachricht\akt = 1 Then
        Nachricht\akt = 0
        If Nachricht<>First ZeichenWritten then ;damit dir ein Fehler erspart bleibt
            vorherigeNachricht.ZeichenWritten=Before Nachricht
            vorherigeNachricht\akt=1
        endif
    EndIf
Next

Ich hoffe, damit klappt's. (Ich kann es gerade nicht ausprobieren.)

BlitzChecker

BeitragMi, Aug 09, 2006 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habs schon selber hingekriegt, aber danke Wink
www.xairro.com

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group