timer reset?

zed

Mitglied
hi folks,

diesmal habe ich wieder ein gaaanz besonderes problemchen für die spezies unter euch: *lachwieeinkleinesschulmädchen*

ich habe auf mein formular eine onkeypress prozedur und einen timer mit einer ontimer prozedur. wenn ich mir nun über ein textfeld den vom timer erhöhtem couter(pro sekunde) anzeigen lasse und plötzlich(!) eine taste drücke wird der counter auf 0(oder 1, weißnich) zurück gesetzt.

das ist für den reibungslosen alauf meines programm nicht besonders zuträglich. also was soll bzw. kann ich dagegen tun?
wenn ich euch das als bsp uploadenn soll "drop me a line".
 
danke

zur erklärung, ich bau immer solche schwachsinnsprogramme, aber nur so lernt man mit den programmiersprachen umzugehen, also mich nicht als VÖLLIG verückt abstempeln.

see you later alligator


httb://www25.brinkster.com/onerror/robert_1.jpg
httb://www25.brinkster.com/onerror/mathe_trainer.rar
 
k nochmal danke

einfacher: ich will dass wenn ich einen knopf drücke eine vom timer ständig erhöhte integervariable zu einer anderen integervariable hinzuaddiert wird.

bsp.:
ich warte 4 sekunden, drücke einen knopf
warte wieder 3 sekunden drücke einen knopf
dann sollte bei der gesamtzeit 7 rauskommen


kommt aber immer null raus, weil die variable bei tastendruck auf null(0, kein NULL) gesetzt wird (warumauch immer)

www25.brinkster.com/onerror/linkin_park_papercut.jpg
<- hab ich heute gemacht
 
Ich hab mir jetzt mal deinen Code angeschaut.

Du hast da einen logischen Fehler,
da du die rundenzeit bevor du diese zur gesamtzeit addierst auf 0 setzt.

dein Code
Code:
procedure TForm1.Button1KeyPress(Sender: TObject; var Key: Char);

begin
     // hier setzt du deine Rundenzeit auf 0
     rundenzeit:= 0;
     if ( Key in [#48..#57] ) then
     begin
          keydisplay.caption:= key;
          keydisplay.Font.color:= clgreen;
          // hier willst du sie aber addieren
          calc;
     end
     else
     begin
          wrong;
          keydisplay.Font.color:= clred;
          keydisplay.caption:= key
     end;
     // wenn du deine Rundenzeit hier auf 0 setzt,
     // wirst du das Problem aus der Welt haben
end;

PS: Hat uebrigens garnichts mit Pascal/Delphi zu tun, dieser Fehler
 
Zuletzt bearbeitet:
Zurück