Einzelnen Beitrag anzeigen

Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Counter Beginnt nicht wieder mit zählen

  Alt 20. Apr 2005, 02:33
Ah OK. Das is halt immer das Problem. Ständig stellen die Leute Fragen und gehen davon aus, daß jeder schon im Voraus genau weiß, wie das ganze aufgebaut is. Aber ohne Informationen stochert man halt nur im Dunklen rum...

So, wie immer, wenn mir jemand erzählen will, daß ein Code nicht funktioniert, in dem ich keinen Fehler finden kann, hab ich das mal selber ausprobiert. Und ich kann nur sagen: Wo siehst du das Problem? Bei mir funktioniert das.

Nur verstehe ich den Aufbau der Funktion nicht ganz.
  1. Da fehlen Ends am Schluß...
  2. Warum aktualisierst du noch in der Schleife das Label? Angezeigt wird sowieso nur die letzte Belegung von Counter, da das Label mit dem Zeichnen nicht so schnell nachkommt.
  3. Warum arbeitest du mit Sets? Geht doch zumindest beim Teil mit der 6 einfacher mit nem String.
Hier mal etwas umgearbeitet, und die funktioniert bei mir einwandfrei - wobei sie das vorher auch schon gemacht hast. Sicher, daß du nicht einfach irgendetwas falsch gezählt hast?
Delphi-Quellcode:
Counter := 0;
for g := 0 to ListBox1.Items.Count-1 do
  Case ListBox1.Items[g][1] Of
    '1','3','7': inc(Counter);
    '6' : Counter := 0;
  End;
Label6.Caption:= IntToStr(Counter) ;
Ich hab jetzt hier mal mit Case gearbeitet. Damit ersparst du dir das IntToStr und die Sets. Allerdings mußte ich hierfür den Str durch das [1] in ein Char umwandeln. Das sollte aber nichts ausmachen, da ich mal davon ausgehe, daß sowieso nur Zahlen <= 9 benutzt werden, oder? Falls nicht, dann machs einfach wieder so:
Delphi-Quellcode:
Counter := 0;
for g := 0 to Anzeige.Items.Count-1 do
  If StrToInt(Anzeige.Items[g]) in [1,3,7] Then
      inc(Counter)
    else
      If Anzeige.Items[g] = '6Then
        Counter := 0;
Label6.Caption:= IntToStr(Counter) ;
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat