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 19. Apr 2005 · letzter Beitrag vom 20. Apr 2005
Antwort Antwort
Seite 3 von 3     123   
Hallo_Thomas

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

Re: Counter Beginnt nicht wieder mit zählen

  Alt 20. Apr 2005, 10:48
Insgesamt werde der Code zulang aber im wesentlichen sieht er so aus


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var a: String;
begin
a:='1' ;
Anzeige.Items.InsertObject(0, a,Pointer(clRed));
end;

procedure TForm1.Button3Click(Sender: TObject);
Var a:String;
begin
a:='3' ;
Anzeige.Items.InsertObject(0, a,Pointer(clRed));
end;


procedure TForm1.Button5Click(Sender: TObject);
Var a:String;
begin
a:='5' ;
Anzeige.Items.InsertObject(0, a,Pointer(clRed));
end;

procedure TForm1.Button6Click(Sender: TObject);
Var a:String;
begin
a:='6' ;
Anzeige.Items.Insert(0, a);
end;

procedure TForm1.Button7Click(Sender: TObject);
Var a:String;
begin
a:='7' ;
Anzeige.Items.InsertObject(0, a,Pointer(clRed));
end;


procedure TForm1.NeustartClick(Sender: TObject);
begin
Anzeige.Items.Clear;
end;

procedure TForm1.AnzeigeDrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
  var
  g, Counter: Integer;


    begin
    with Control as TListBox do
    begin
    Canvas.FillRect(Rect);
    Canvas.Font.Color := TColor(Items.Objects[Index]);
    Canvas.TextOut(Rect.Left + 2, Rect.Top, Items[Index]);
    end;
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;
end;
end;
Label6.Caption:= IntToStr(Counter) ;





end;
end. ;

P.S. Im Orginal gibts noch mehr Zahlen

Das Problem ist, das ich möchte das oben in der Listbox die neuen Zahlen erscheinen, dadurch Funktioniet der Counter nicht so wie er sollte
Angehängte Dateien
Dateityp: zip delphi_535.zip (210,5 KB, 11x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Grumble
Grumble

Registriert seit: 19. Mär 2003
Ort: Dresden
203 Beiträge
 
Delphi 6 Enterprise
 
#22

Re: Counter Beginnt nicht wieder mit zählen

  Alt 20. Apr 2005, 11:25
hi,

irgendwie fehlen da dateien in deiner zip datei, wenn ich mich nicht irre
gruss
Grumble

... moege der code mit dir sein ...
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

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

Re: Counter Beginnt nicht wieder mit zählen

  Alt 20. Apr 2005, 11:49
Naja, wichtig is ja eigentlich im Moment erstmal die exe.

Und ich kann wieder mal nur sagen, daß selbst in diesem Testprogramm der Algorithmus genau das macht, was du programmiert hast, Hallo_Thomas...

Betrachte diese 2 Fälle:
  1. Gebe ich als erstes eine 6 ein, ist Counter immer 0, da die ListBox eben von oben nach unten durchgegangen wird. Und da das als erstes eingegebene Element eine 6 ist, und dieses Element bei der Eingabe neuer Zahlen immer das letzte Element bleibt, wird nach der Schleife "Counter" immer 0 sein, da eben als letztes eine 6 gefunden und Counter auf 0 gesetzt wird.
  2. Geben ich als erstes (und vielleicht noch als 2., 3., ...) eine 1,3 oder 7 ein, stehen die immer ganz unten in der ListBox. Daher zeigt Counter immer an, wieviele 1er, 3er oder 7er eingegeben wurden, bis die erste 6 kam.
Du siehst also, so betrachtet macht dein Code, was du willst.
Hättest du mal früher etwas mehr gepostet, dann hätte man dazu auch gleich mehr sagen können. Das jetzt mal nur als Tip für die Zukunft.

Jetzt zur Lösung:
Ich gehe mal davon aus, daß du willst, daß dir angezeigt wird, wieviele 1er, 3er und 7er in der ListBox über der letzten 6 stehen, oder? Also, wieviele seit der letzten 6 eingegeben wurden?
Dann mußt du natürlich die ListBox auch rückwärts durchgehen:
Delphi-Quellcode:
Counter := 0;
for g := Anzeige.Count-1 to 0 do
  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) ;
PS: Gewöhn dir mal an, deinen Code etwas besser zu formatieren. Bei dir muß man immer suchen, was wozu gehört. Wenn du an bestimmten Stellen mit TAB etwas einrückst, macht das den Code viel lesbarer. Das erleichtert auch die Programmierung erheblich.
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
 
#24

Re: Counter Beginnt nicht wieder mit zählen

  Alt 20. Apr 2005, 12:19
Ein langer Weg, aber Die Lösung ist nahe

Jetzt zählt der Counter bei einer Zahl [1,3,7] aber springt bei der 2. Zahl[1,3,7]
sofort wieder zurück
  Mit Zitat antworten Zitat
Benutzerbild von Grumble
Grumble

Registriert seit: 19. Mär 2003
Ort: Dresden
203 Beiträge
 
Delphi 6 Enterprise
 
#25

Re: Counter Beginnt nicht wieder mit zählen

  Alt 20. Apr 2005, 12:22
[edit] geloescht [end edit] sorry
gruss
Grumble

... moege der code mit dir sein ...
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

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

Re: Counter Beginnt nicht wieder mit zählen

  Alt 20. Apr 2005, 13:22
*hust* *hust* Da muß der Hausgeist am Werk gewesen sein, ich war das nämlich bestimmt nicht. *hust* *hust*
Denn natürlich muß da anstatt "From ... To ..." "From ... DownTo ..." stehen.

...........

Wie gesagt, ich war das nicht! Pöhser Hausgeist!
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 3 von 3     123   


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 15:06 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