Einzelnen Beitrag anzeigen

mb.99

Registriert seit: 10. Dez 2011
23 Beiträge
 
#1

Delphi Stoppuhr Problem (GetTickCount)

  Alt 4. Jan 2012, 10:38
Delphi-Version: 5
Hi,
habe mir gerade eine Stoppuhrfunktion geschrieben die die Zeit zwischen dem ersten und dem
zweiten Button click stoppen soll.

Beim ersten Klick wird die Systemzeit genommen(z.B. 14039419),
beim zweiten wird nochmal die Systemzeit(z.B. 14040776) abgerufen und daraufhin wird die
erste von der zweiten abgezogen(was 1357 ergeben sollte, auf dem Ausgabepanel erscheint aber 9668144),
die Startzeit hat sich nach dem ersten KLick einfach von 14039419 in 4372632 geändert wie kann das sein?

Gruß

Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm2 = class(TForm)
    Button1: TButton;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;
  Status: string; // start, stop

implementation

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);
begin
  Status := 'start';
end;

procedure TForm2.Button1Click(Sender: TObject);
var
  Ti1, Ti2: Integer; // Ti1:Startzeit Ti2: Stoppzeit
begin
  if Status = 'startthen
  begin
    Ti1 := GetTickCount; // Startzeit := Systemnzeit(ms)
    Status := 'stop';
      Button1.Caption := Status;
      Panel1.Caption := IntToStr(Ti1);
  end else
  if Status = 'stopthen
  begin
    Ti2 := GetTickCount; // Stoppzeit := Systemzeit
    Status := 'start';
      Button1.Caption := Status; // Zeitspanne := Stoppzeit - Startzeit;
      Panel4.Caption := IntToStr(Ti1);
      Panel2.Caption := IntToStr(Ti2);
      Panel3.Caption := IntToStr(Ti2 - Ti1);
  end;
end;

end.
  Mit Zitat antworten Zitat