AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Uptime der eigenen Anwendung in Minuten
Thema durchsuchen
Ansicht
Themen-Optionen

Uptime der eigenen Anwendung in Minuten

Ein Thema von Ajin · begonnen am 8. Feb 2008 · letzter Beitrag vom 8. Feb 2008
Antwort Antwort
Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#1

Uptime der eigenen Anwendung in Minuten

  Alt 8. Feb 2008, 14:49
Hallo!

Ich möchte die uptime meiner Anwendung in ein Label packen, allerdings nur in vollen Minuten.
Ich könnte natürlich einen Integer mit 0 initialisieren und jede Sekunde durch 60 Teilen und ausgeben, dann hab ich jede volle Minute... aber da gibts bestimmt was eleganteres oder?

Grüsse!
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#2

Re: Uptime der eigenen Anwendung in Minuten

  Alt 8. Feb 2008, 14:51
Was ist denn daran unelegant?

Alternativ kannst du mit GetTickCount arbeiten.
  Mit Zitat antworten Zitat
Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Uptime der eigenen Anwendung in Minuten

  Alt 8. Feb 2008, 15:41
Okay ich habs dann mit dem Teilen des Integer Werts gelöst.

uptime ist ein integer = 0

Delphi-Quellcode:

procedure TForm1.Timer_dateTimer(Sender: TObject);
var m : string;
f:double;
begin
 inc(uptime);
 f:=uptime/60;
 Format('%.0n', [f]);
 m:=Format('%6.0f', [f]);
 label1.caption:=m;
end;
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#4

Re: Uptime der eigenen Anwendung in Minuten

  Alt 8. Feb 2008, 16:49
was soll denn die Zeile
Format('%.0n', [f]); bewerkstelligen??

ich würd des ein bisschen anders regeln:
Delphi-Quellcode:
procedure TForm1.Timer_dateTimer(Sender: TObject);
var Minute: integer;
begin
inc(uptime); // integer (sekunden)
Minuten := uptime div 60;
Label1.Caption := IntToStr(Minuten);
// Label1.Caption := 'UpTime: ' + IntToStr(Minuten) + ' min';
end;
rollstuhlfahrer
Bernhard
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Uptime der eigenen Anwendung in Minuten

  Alt 8. Feb 2008, 17:15
Wenn man eine Zeit messen möchte, sollte man nicht irgendeinen Zähler per Timer erhöhen, denn das kann grössere Abweichungen (bis zu 20%) geben.
Wenn Windows oder deine Anwendung voll ausgelastet sind, kommen die Timer-Ereignisse verzögert oder zeitweise gar nicht.

So wird's gemacht:
Delphi-Quellcode:
TForm1 = class(Tform)
private
  FStartup : TDateTime;
end;

procedure TForm1.FormCreate();
begin
  FStartup := Now; // wie merken uns die Startzeit
end;


function TimeDiffToStr(timediff: TDateTime): string;
var
   h,n,s,z: Word;
begin
   DecodeTime(timediff,h,n,s,z);
   if h > 0 then
      Result := Format('%d:%.2d:%.2d',[h,n,s])
   else
      Result := Format('%.2d:%.2d',[n,s]);
end;

// Timer-Event, dass jede Sekunde die Anzeige aktualisiert
procedure TForm1.TimerTimer();
var
  timediff : TDateTime;
begin
  timediff := now-FStartup;
  Label1.Caption := 'Uptime: '+TimeDiffToStr(timediff);
end;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Uptime der eigenen Anwendung in Minuten

  Alt 8. Feb 2008, 17:21
Geht es nicht leichter, indem man sich am Anfang des Programmes GetTickCount merkt und dann wenn man es braucht den alten Tick vom neuen subtrahiert und in Minuten umrechnet?

GetTickCount ist, glaube ich, in Millisekunden, also die Differenz / 1000 / 60.

Delphi-Quellcode:
procedure TForm1.FormCreate();
begin
  FStartTick = GetTickCount;
end;

function TForm1.GetTime : Cardinal;
begin
  result := (GetTickCount - FStartTick) / 1000 / 60;
end;
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Uptime der eigenen Anwendung in Minuten

  Alt 8. Feb 2008, 17:29
Zitat von halinchen:
Geht es nicht leichter, indem man sich am Anfang des Programmes GetTickCount merkt
Viele Wege führen nach Rom. GetTickCount ist aber nicht für längere Zeiträume geeignet.
Nach 49.7 Tagen gibt es einen Überlauf und bei der Hälfte der Zeit wird der Wert negativ.
Also wenn die Anwendung auf einem Server gestartet wurde, der schon lange läuft, wird es Probleme geben.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Uptime der eigenen Anwendung in Minuten

  Alt 8. Feb 2008, 19:20
Zitat von halinchen:
Geht es nicht leichter, indem man sich am Anfang des Programmes GetTickCount merkt und dann wenn man es braucht den alten Tick vom neuen subtrahiert und in Minuten umrechnet?
Mit Hilfe der Funktion GetProcessTimes() kann man ansonsten auch noch an die Creationtime des eigenen Prozesses kommen.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:39 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