Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Anmeldezeit berechnen (https://www.delphipraxis.net/8977-anmeldezeit-berechnen.html)

Micha 16. Sep 2003 09:17


Anmeldezeit berechnen
 
Ich weiß, es gibt schon einen Beitrag von ffomoon zu diesem Thema (hier) . Aber mein Problem stellt sich ein bisschen anders dar.

Ich möchte in einem Label die Zeit ausgegeben, wie lange der User schon im Programm angemeldet ist.

Ich möchte also drei Labels:
1. Label = aktuelle Uhrzeit
2. Label = Uhrzeit der Anmeldung
3. Label = Differenz der beiden

Aktuelle Uhrzeit weiß ich, die ist auch mit einem Timer verbunden siehe Beitrag.
- Wie kann ich aber die Uhrzeit der Anmeldung herausfinden?
- Kann ich die Differenz dann folgendermaßen berechnen? Denn eigentlich bräucht ich ja das strtotime gar nicht, weils ja schon ne Uhrzeit ist.

Delphi-Quellcode:
Label3.Caption := TimetoStr(StrtoTime(Label1.Caption)-StrtoTime(Label2.Caption));

Sharky 16. Sep 2003 09:29

Re: Anmeldezeit berechnen
 
[quote=Micha]Ich weiß, es gibt schon einen Beitrag von ffomoon zu diesem Thema [URL=....Ich möchte in einem Label die Zeit ausgegeben, wie lange der User schon im Programm angemeldet ist.

Ich möchte also drei Labels:
1. Label = aktuelle Uhrzeit
2. Label = Uhrzeit der Anmeldung
3. Label = Differenz der beiden
...[/quote]

Speichere doch einfach in einer Variablen die Uhrzeit an der sich der Anwender angemeldet hat:

Delphi-Quellcode:
var
 anmeldezeit : TDateTime;

procedure TForm1.FormCreate(Sender: TObject);
begin
 anmeldezeit := now;
end;
Die Differenz kannst Du ganz normal berechnen. Wenn Du D6 oder höher hast gibt es IMHO die Funktion MinutesBetween um die anzahl der Minuten zwichen zwei TDateTimes zu berechnen.

Micha 16. Sep 2003 09:38

Re: Anmeldezeit berechnen
 
Sorry, aber ich raffs noch nicht ganz.

Bis jetzt wird die aktuelle Uhrzeit in der Statusbar angezeigt.

Delphi-Quellcode:
procedure Tfrm_main.FormCreate(Sender: TObject);
var
anmeldezeit : TDateTime;
begin
  anmeldezeit := now;
  lbl_differenz.Caption := anmeldezeit - statusbar.Panels[2].Text;
end;
Ich weiß ja, dass der obenstehende Quelltext deswegen nicht hinhaut, weil das eine ein Datum ist und das andere ein String.

Kann mir bitte nochmal wer helfen!

Phoenix 16. Sep 2003 09:45

Re: Anmeldezeit berechnen
 
Du darfst die Anmeldezeit nicht in einer lokalen Variable im OnCreate - Ereignis speichern. Die ist nämlich futsch, sobald die Funktion ausgeführt ist. Speichere die Anmeldezeit am besten in einer member-Variable des Formulares.

Achtung Pseudocode!
Delphi-Quellcode:
   myForm = class(TForm)
   private
      anmeldezeit: TDateTime;
   protected
      // protected declarations
[...]

myForm.OnCreate(Sender: Tobject);
begin
   anmeldezeit := now;
end;

myForm.OnTimer(Sender: TObject);
var
   DiffTime: TDateTime;
begin
   // Deine bisherige Methode

   DiffTime := now - anmeldezeit;
   // Difftime ins Panel schreiben
end;

Micha 16. Sep 2003 09:50

Re: Anmeldezeit berechnen
 
Optimal. DANKE.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:47 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