Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Gettickcount ist unbekannt (https://www.delphipraxis.net/194233-gettickcount-ist-unbekannt.html)

Delbor 31. Okt 2017 19:06

Delphi-Version: XE8

Gettickcount ist unbekannt
 
Hi zusammen
Damit stelle ich fest, wenn eine Pfadliste fertig abgearbeitet ist, errechne die Dauer des Einlesevorgangs und feuere einen Event, der unter anderem einen Progrossbar-Dialog beendet.
Das komische dabei: GettickCont ist hier unbekannt, auch wenn unter uses die beiden Units System.Classes und System.Types eingetragen sind.
Delphi-Quellcode:
if i = PathList.Count - 1 then
begin
  CInsertTime := GetTickCount - startTime;
  if Assigned(FOnInsertedTime) then          
    FOnInsertedTime(Self,CInsertTime);      
end;
Was soll das? Mein Win64 wird wohl kaum die Ursache sein...

Gruss
Delbor

Luckie 31. Okt 2017 19:14

AW: Gettickcount ist unbekannt
 
Steht Windows in der Uses Liste?

Delbor 31. Okt 2017 19:27

AW: Gettickcount ist unbekannt
 
Hi Luckie

Bis ich deinenPost gesehen habe, stand es tatsächlich nicht da - jetzt ist Gettickcount bekannt.
Vielen Dank!
Allerdings - das ist ein Datenmodul, das ich über Datei=>Neu=>weitere erstellt habe. Und ich hab gedacht, Delphi würde auch Window da eintragen.
Na ja, man lernt eben nie aus...

Gruss
Delbor

Glados 31. Okt 2017 19:45

AW: Gettickcount ist unbekannt
 
Eventuell interessiert dich ja auch GetTickCount64. Denn manche PCs sind durch aus etwas länger an.

bytecook 1. Nov 2017 19:37

AW: Gettickcount ist unbekannt
 
Delbor,

probier mal folgendes...
Delphi-Quellcode:
if i = PathList.Count - 1 then
begin
  CInsertTime := TThread.GetTickCount - startTime;
  if Assigned(FOnInsertedTime) then
    FOnInsertedTime(Self,CInsertTime);
end;
Dann sollte es ohne Windows Unit funktionieren. So ist es plattformunabhängig. Wurde glaube ich mit einer XE Version mal verschoben.

Delphi-Quellcode:
class function TThread.GetTickCount: Cardinal;
{$IF Defined(MSWINDOWS)}
begin
  Result := Winapi.Windows.GetTickCount;
end;
{$ELSEIF Defined(MACOS)}
begin
  Result := AbsoluteToNanoseconds(mach_absolute_time) div 1000000;
end;
{$ELSEIF Defined(POSIX)}
var
  res: timespec;
begin
  clock_gettime(CLOCK_MONOTONIC, @res);
  Result := (Int64(1000000000) * res.tv_sec + res.tv_nsec) div 1000000;
end;
{$ELSE OTHERPLATFORM}
  {$MESSAGE Fatal 'Method not implemented for Platform'}
{$ENDIF OTHERPLATFORM}


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