Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Zeitmessung und -anzeige für Projekt
Swagger Jackin - So 21.02.10 17:54
Titel: Zeitmessung und -anzeige für Projekt
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
Magic J - 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 - 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. - 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 - So 21.02.10 18:34
Die Variable start in Unit1 initialisierst merkt die Variable start in Unit13 nichts...
Das sind zwei verschiedene Variabeln.
Magic J - 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 - So 21.02.10 20:20
habe es umgeändert trotzdem dieselbe Zeit, hat sich leider nichts geändert
Magic J - So 21.02.10 21:32
Du hast also die Variable in Unit1 gelöscht und den dortigen Aufruf angepasst?
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 - 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!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!