AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Counter Beginnt nicht wieder mit zählen

Ein Thema von Hallo_Thomas · begonnen am 20. Apr 2005 · letzter Beitrag vom 20. Apr 2005
Antwort Antwort
Seite 1 von 3  1 23      
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#1

Counter Beginnt nicht wieder mit zählen

  Alt 20. Apr 2005, 00:13
Ich habe folgendes Problem mit dem Quellcode; der Counter zählt zwar bei 1,3,7
aber er springt nicht auf null zurück bei 6 und beginnt auch nicht wieder von vorn zu zählen bei 1,3,7, wo liegt der Fehler?


Delphi-Quellcode:
begin
Counter := 0;
for g := 0 to Anzeige.Count-1 do
begin
if StrToInt(Anzeige.Items[g]) in [1,3,7] then
Inc(Counter)
else if StrToInt(Anzeige.Items[g]) in [6] then
Counter := 0 ;
Label6.Caption:= IntToStr(Counter) ;

p.S. Anzeige = Listbox1
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: Counter Beginnt nicht wieder mit zählen

  Alt 20. Apr 2005, 00:19
Zitat von Hallo_Thomas:
Delphi-Quellcode:
begin
Counter := 0;
for g := 0 to Anzeige.Count-1 do
begin
if StrToInt(Anzeige.Items[g]) in [1,3,7] then
Inc(Counter)
else if StrToInt(Anzeige.Items[g]) in [6] then
Counter := 0 ;
Label6.Caption:= IntToStr(Counter) ;
Der Counter wird bei 1, 3 und 7 um eins erhöht. Bei 6 wird er auf Null gesetzt. Was soll er mehr machen?

Du hast das alles in einer Schleife. Wenn die letzte Zahl eine 6 ist ist Counter auch 0.

Vielleicht nochmal durchdenken.

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Counter Beginnt nicht wieder mit zählen

  Alt 20. Apr 2005, 00:26
Er soll wieder bei der Zahl 6 wieder im Label eine 0 Zeigen und wenn eine 1,3 oder 7 erscheint wieder zählen anfangen zu zählen.
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

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

Re: Counter Beginnt nicht wieder mit zählen

  Alt 20. Apr 2005, 00:47
Zitat:
aber er springt nicht auf null zurück bei 6 und beginnt auch nicht wieder von vorn zu zählen bei 1,3,7, wo liegt der Fehler?
Zitat:
Er soll wieder bei der Zahl 6 wieder im Label eine 0 Zeigen und wenn eine 1,3 oder 7 erscheint wieder zählen anfangen zu zählen.
Wie wäre es mal mit nem verständlichen Satz? So muß man sich das alles zusammenreimen...
Ich sehe in diesem Code keinen Fehler.
Das einzige was ich dir jetzt sagen kann ist, daß die Schleife auf jeden Fall zu schnell ist, um jede Änderung von Counter darzustellen. Da kommt das Label einfach nicht mit. Befüll dir mit Counter mal eine ListBox, dann kannst du genau überprüfen, wann Counter welchen Wert hat.

PS: Die Zeile
else if StrToInt(Anzeige.Items[g]) in [6] then wäre anders wahrscheinlich einfacher:
else if Anzeige.Items[g] ='6then
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
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Counter Beginnt nicht wieder mit zählen

  Alt 20. Apr 2005, 01:36
Sorry, is schon spät und das Filmchen nebenbei hat sein übriges getan.


Also noch mal kurz zurück mein hauptproblem liegt wohl eindeutig in dieser Zeile würde ich sagen


Delphi-Quellcode:
else if StrToInt(Anzeige.Items[g]) in [6] then
Counter := 0 ;
Ich möchte einfach, dass wenn die 6 erscheint der Counter auf null schaltet und wenn nun wieder eine 1,3, oder 7 erscheint er wieder diese befehlszeile ausführt:

Delphi-Quellcode:
if StrToInt(Anzeige.Items[g]) in [1,3,7] then
Inc(Counter)
Irgendwie führt diese Befehlszeile dann aus, selbst wenn ich die drücke.


Delphi-Quellcode:
else if StrToInt(Anzeige.Items[g]) in [6] then
Counter := 0 ;


Dankeschön und gute Nacht!
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

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

Re: Counter Beginnt nicht wieder mit zählen

  Alt 20. Apr 2005, 01:40
OK, also meine Tips scheinen dich nicht zu interessieren...

//Edit:
Mit der Zeile hier kann ich immer noch nich so recht was anfangen...
Zitat:
Irgendwie führt diese Befehlszeile dann aus, selbst wenn ich die drücke.
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
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#7

Re: Counter Beginnt nicht wieder mit zählen

  Alt 20. Apr 2005, 01:56
Da ich ein Newbie bin, versuch ich ja alles so gut umzusetzen wie ich verstehe und ausdrücken kann:


Irgendwie führt diese Befehlszeile dann aus, selbst wenn ich die 1 drücke.
Ich meinte da müsste doch der Counter wieder zählen.
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

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

Re: Counter Beginnt nicht wieder mit zählen

  Alt 20. Apr 2005, 02:05
Ich versteh nicht, was du mit "drücken" meinst? Du gehst doch die Items einer ListBox oä durch. Was hat das mit "drücken" zu tun?
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
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#9

Re: Counter Beginnt nicht wieder mit zählen

  Alt 20. Apr 2005, 02:10
ein gedanklicher fehler von mir, da ich den Button "1" DRÜCKE der nun als 1 in der Listbox erscheint
  Mit Zitat antworten Zitat
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
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz