Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#11
  Alt 24. Jan 2003, 01:05
Auf Mathias ist doch verlass.

Hier die Lösung:
Delphi-Quellcode:
function Int32x32To64(const a, b: dword): int64;
begin
  Result := int64(a) * int64(b);
end;

function SecsToDateTime(secs: int64): String;
var
  ft : TFILETIME;
  st : TSYSTEMTIME;
  lt : TSYSTEMTIME;
  li : int64;
  buf1, buf2 : array[0..255] of Char;
begin
  if secs = 0 then
  begin
    result := '';
    exit;
  end;
  st.wYear := 1970;
  st.wMonth := 1;
  st.wDayOfWeek := 0;
  st.wDay := 1;
  st.wHour := 1;
  st.wMinute := 0;
  st.wSecond := 0;
  st.wMilliseconds := 0;
  SystemTimeToFileTime(st,ft);
  { Version 1 }
  {ui.QuadPart := Int32x32To64(PUserInfo11(ui11)^.usri11_last_logon, 10000000)
        + 116444736000000000;
  FileTimeToSystemTime(TFileTime(ui),st);
  FileTimeToSystemTime(TFileTime(ui),st);}

  { Version 2 }
  li := Int32x32To64(secs, 10000000) + 116444736000000000;
  ft.dwLowDateTime := DWORD(li);
  ft.dwHighDateTime := li shr 32;
  FileTimeToSystemTime(TFileTime(ft),st);
  SystemTimeToTzSpecificLocalTime(nil, st, lt);
  GetTimeFormat(LOCALE_USER_DEFAULT, TIME_FORCE24HOURFORMAT, @lt, nil, buf1, sizeof(buf1));
  GetDateFormat(LOCALE_USER_DEFAULT, DATE_SHORTDATE, @lt, nil, buf2, sizeof(buf2));
  result := String(buf2)+' / '+String(buf1);
end;
Man, wen ich so langsam schon alles erwähnen muß: Mathias als lebender Debugger, Danial als Tester und Marcel van Brakel als Tester und Helfer. Wenn das so weiter geht, ist die Aboutbox bald größer als das Programmfenster.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat