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
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