Avatar billede lytzen Nybegynder
28. oktober 2000 - 21:36 Der er 1 kommentar og
1 løsning

Til Borrisholt

Hej!
Hvordan kan jeg få unit\'en til at returnere tiden er er forløbet siden bootup. Det den gør nu, er at vise hvilken dato computeren blev tændt. Jeg kan desværre ikke få det til at virke, hvis jeg trækker de to datetime\'s fra hinanden.

- Lytzen
Avatar billede borrisholt Novice
30. oktober 2000 - 08:37 #1
Sæt to knapper på en form sammen med et memo felt.

tilføj projekter en formcreate event, og et onklik event til hvar af knapperne og skriv så det følgende kode :


type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    CpuSpeed : Double;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}


procedure TForm1.FormCreate(Sender: TObject);
begin
  Caption:=GetComputerName;
  CpuSpeed := GetCpuSpeed;
end;


Function GetTimeStamp : Int64;
var
  TimeStamp : Record
    case byte of
      1 : (Whole: Int64);
      2 : (LO, HI : longint);
    end;
begin
  asm
    db $0F;
    db $31;
    mov [TimeStamp.LO], eax
    mov [TimeStamp.HI], edx
  end;
Result:=TimeStamp.Whole;
end;

procedure TForm1.Button1Click(Sender: TObject);
Var
TotalSeconds:Double;
DaysBooted,TodaysDate:TDateTime;
begin
  memo1.Lines.Add(format(\'GetTimeStamp : %d\',  [GetTimeStamp] ));
  memo1.Lines.Add(format(\'GetCpuSpeed  : %g\',  [CpuSpeed]    ));

  TotalSeconds := GetTimeStamp / (GetCpuSpeed * 1000000);
  memo1.Lines.Add(format(\'TotalSeconds  : %g\', [TotalSeconds] ));

  TodaysDate:=Now;
  Memo1.Lines.Add(FormatDateTime(\'\"TodaysDate    : \" dddd \"d.\"  dd mmm yyyy \"at\" hh:mm:ss\',TodaysDate ));

  Memo1.Lines.Add(FormatSeconds(TotalSeconds));

  DaysBooted := TodaysDate - ( TotalSeconds/ (24 * 3600) );
  Memo1.Lines.Add(FormatDateTime(\'\"DaysBooted :\" dddd \"d.\"  dd mmm yyyy \"at\" hh:mm:ss\', DaysBooted ));
  Memo1.Lines.Add(\'\');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Lines.Add(GetBootTime);
end;

divese \"manglende\" funktion hentes fra JBUtils.

jens B
Avatar billede lytzen Nybegynder
06. november 2000 - 13:27 #2
tak skal du ha\' :)
Jeg er lidt forsinket med points\'ne, men jeg har haft lidt travlt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester