Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Daten aus Record auslesen? (https://www.delphipraxis.net/128513-daten-aus-record-auslesen.html)

Larsi 31. Jan 2009 09:51


Daten aus Record auslesen?
 
Hi,

kann mir jemand sagen wie ich aus diesem Thread aus der Codelib: http://www.delphipraxis.net/internal...t.php?p=937329 die Millisekunden ausgeben kann?

Luckie schreibt folgendes: Die Uptime steht in dem Feld tod_msecs.

Wenn ich jetzt zum Beispiel:

Delphi-Quellcode:
Caption := IntToStr(tod_msecs);
schreibe kommt ein Fehler. Ich habe noch nie mit solchen Records gearbeitet. Vielleicht kennt jemand eine schnelle Lösung?

himitsu 31. Jan 2009 09:54

Re: Daten aus Record auslesen?
 
Delphi-Quellcode:
var x: TTimeOfDayInfo;

...
Caption := IntToStr(x.tod_msecs);
stell dir den Record wie ein Objekt vor

Larsi 31. Jan 2009 09:55

Re: Daten aus Record auslesen?
 
Danke :thumb:

Larsi 3. Feb 2009 14:34

Re: Daten aus Record auslesen?
 
Ich glaube ich mache was falsch. Also hier nochmal Luckies Code:
Delphi-Quellcode:
type
  NET_API_STATUS = DWORD;

type
  PTimeOfDayInfo = ^TTimeOfDayInfo;
  TTimeOfDayInfo = packed record
    tod_elapsedt: DWORD;
    tod_msecs: DWORD;
    tod_hours: DWORD;
    tod_mins: DWORD;
    tod_secs: DWORD;
    tod_hunds: DWORD;
    tod_timezone: Longint;
    tod_tinterval: DWORD;
    tod_day: DWORD;
    tod_month: DWORD;
    tod_year: DWORD;
    tod_weekday: DWORD;
  end;


const
  NERR_Success = 0;
  netapi32lib = 'netapi32.dll';


// [..]

function NetApiBufferFree(Buffer: Pointer): NET_API_STATUS; stdcall; external netapi32lib name 'NetApiBufferFree';
function NetRemoteTOD(UncServerName: LPCWSTR; BufferPtr: PBYTE): NET_API_STATUS; stdcall; external netapi32lib name 'NetRemoteTOD';

// [..]

function GetRemoteToD(machine: WideString): TTimeOfDayInfo;
var
  TimeOfDayInfo: PTimeOfDayInfo;
  dwRetValue: DWORD;
begin
  dwRetValue := NetRemoteTOD(PWideChar(WideString(Machine)), PBYTE(@TimeOfDayInfo));
   if dwRetValue <> NERR_Success then
    raise Exception.Create(SysErrorMessage(dwRetValue));
  with TimeOfDayInfo^ do
  begin
    Result := TimeOfDayInfo^;
    NetApiBufferFree(TimeOfDayInfo);
  end;
end;
Wenn ich das Ganze in einem Button so aurufe:

Delphi-Quellcode:
var x: TTimeOfDayInfo;
Caption := IntToStr(x.tod_msecs);
kommt immer 4 raus. Weiß jemand wie ich das richtig aufruf?

himitsu 3. Feb 2009 14:48

Re: Daten aus Record auslesen?
 
Zitat:

kommt immer 4 raus. Weiß jemand wie ich das richtig aufruf?
du solltest natürlich auch noch Luckies Funktion irgendwo aufrufen, denn dessen Werte möchtest du doch haben :zwinker:

Delphi-Quellcode:
var x: TTimeOfDayInfo;

x := GetRemoteToD('Name der Maschine');
Caption := IntToStr(x.tod_msecs);

Larsi 3. Feb 2009 14:50

Re: Daten aus Record auslesen?
 
Jetzt bekomm ich die Meldung "Der Dienst ist noch nicht gestartet".

Larsi 3. Feb 2009 14:51

Re: Daten aus Record auslesen?
 
Die // mussten weg. Jetzt gehts. :thumb:


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