Autor |
Beitrag |
Swagger Jackin
      
Beiträge: 26
|
Verfasst: So 21.02.10 17:54
Im Projekt versuche ich zwischen Start und Ende die Zeit zu messen und anzuzeigen.
Ich erhalte bei jedem neuem Spielstart durch klicken NeuesSpiel im Menü immer dieselbe Zeit und ich will es neben Label anzeigen, jedoch wird das Label erstezt durch die Zeit
Zuletzt bearbeitet von Swagger Jackin am Sa 27.02.10 13:39, insgesamt 1-mal bearbeitet
|
|
Magic J
      
Beiträge: 66
WinXP Prof., Vista
Delphi6, Delphi 2009, Java(Eclipse), C++, Basic
|
Verfasst: So 21.02.10 18:07
Hi,
Zitat: | Ich erhalte bei jedem neuem Spielstart durch klicken NeuesSpiel im Menü immer dieselbe Zeit |
naja deine Variable 'start' wird nie beschrieben!
Ich denkmal darin sollte die Startezeit am Anfang abgespeichert werden
Zitat: | und ich will es neben Label anzeigen, jedoch wird das Label erstezt durch die Zeit |
wenn deine Label vorher schon ein Caption hat wird das natürlich überschrieben.
willst du einen Text davor musst du ihn schon nochmal hinzufügen:
Delphi-Quelltext 1:
| Label2.Caption := 'Zeit: ' + FormatDatetime('ss', runtime); |
Gruß,
|
|
Swagger Jackin 
      
Beiträge: 26
|
Verfasst: So 21.02.10 18:28
naja deine Variable 'start' wird nie beschrieben!
Ich denkmal darin sollte die Startezeit am Anfang abgespeichert werden
ich dachte: start:=now; reicht aus
Was muss ich ändern, weiß auch nichts anderes
|
|
Niko S.
      
Beiträge: 566
Erhaltene Danke: 10
Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
|
Verfasst: So 21.02.10 18:33
Also es geht beispielsweise so
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| var StartTime: Int64; begin StartTime := GetTickCount; Label1.caption := Format('Der Vorgang dauerte: %f s',[(GetTickCount-StartTime) / 1000]); |
Ich hoffe ich hab da jetzt keine Fehler reingebracht.
GetTickCount ist nicht unbedingt super genau.
|
|
bole
      
Beiträge: 107
Erhaltene Danke: 15
win 10
|
Verfasst: So 21.02.10 18:34
Die Variable start in Unit1 initialisierst merkt die Variable start in Unit13 nichts...
Das sind zwei verschiedene Variabeln.
_________________ ein programm macht nicht das was du willst sondern was du schreibst!
|
|
Magic J
      
Beiträge: 66
WinXP Prof., Vista
Delphi6, Delphi 2009, Java(Eclipse), C++, Basic
|
Verfasst: So 21.02.10 18:44
Zitat: | Die Variable start in Unit1 initialisierst merkt die Variable start in Unit13 nichts... |
Genau.
Deshalb solltest du 'start' aus Unit1 entfernen und sie dafür (zB.) in Unit13 als public definieren
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| private public start: TDatetime; end;
var Form13: TForm13; runtime : TDatetime; i : integer; |
Gruß,
|
|
Swagger Jackin 
      
Beiträge: 26
|
Verfasst: So 21.02.10 20:20
habe es umgeändert trotzdem dieselbe Zeit, hat sich leider nichts geändert
|
|
Magic J
      
Beiträge: 66
WinXP Prof., Vista
Delphi6, Delphi 2009, Java(Eclipse), C++, Basic
|
Verfasst: So 21.02.10 21:32
Du hast also die Variable in Unit1 gelöscht und den dortigen Aufruf angepasst?
Delphi-Quelltext
Wenn ja, dann muss du wohl noch deinen Zeitberechnung in der Unit13 in ' OnShow' und nicht in 'OnCreate' ausführen...
OnCreate wird nur einamlig beim Erstellen(nicht Anzeigen) des Forms ausgeführt!
Gruß,
|
|
Swagger Jackin 
      
Beiträge: 26
|
Verfasst: So 21.02.10 22:03
Endlich läuft es richtig
Magic J: dein Vorschlag war das Letzte was noch gefehlt hatte
Danke für alle Antworten!
|
|