czy może mi ktoś powiedzieć jak zmienić datę systemową z poziomu delphi 5
W katalogu demos powinieneś mieć gdzieś folder CPL, tam był przykład tworzenia appletu panelu sterowania do zmiany daty.
--
Delphi 6
Pozdrówka
Ten kod (Delphi 6) w teorii zmienia date o 2 dni d przodu. W praktyce u mnie zmienia ale cofa przy tym zegar o 5 godzin i nie wiem dlaczego i nie chce mi sie szukac.
Kluczowa jest funkcja API SetSytemTime i struktura SYSTEMTIME (tez API).
[code]uses DateUtils;
procedure TForm1.Button1Click(Sender: TObject);
var
systime: SYSTEMTIME;
begin
DecodeDateTime(IncDay(Now,2), systime.wYear, systime.wMonth, systime.wDay,
systime.wHour, systime.wMinute, systime.wSecond, systime.wMilliseconds);
SetSystemTime(systime);
end;[/code]
======================
dopisane pozniej: juz wiem co z tymi 5 godzinami, trzeba uwzglednic strefe czasowa, bo SetSystemTime ustawia UTC (Universal Standard Time), a ja jestem 5 godzin na zachod od Greenwich.
[code]
uses DateUtils;
procedure TForm1.Button1Click(Sender: TObject);
var
currentdate:TDateTime;
systime: SYSTEMTIME;
zone : TIME_ZONE_INFORMATION;
begin
GetTimeZoneInformation(zone);
currentdate:=Now+EncodeTime(zone.Bias div 60,zone.Bias mod 60,0,0);
currentdate:=IncDay(currentdate,2);
DecodeDateTime(currentdate, systime.wYear, systime.wMonth, systime.wDay,
systime.wHour, systime.wMinute, systime.wSecond, systime.wMilliseconds);
SetSystemTime(systime);
end;
[/code]
Wydaje mi sie, ze bias uwzglednia czas letni, ale tego juz naprawde nie chce mi sie sprawdzac.
--
Pawel {Delphi 6 Personal}
Po pierwsze: naciśnij F1
trzeba uwzglednic strefe czasowa, bo SetSystemTime ustawia UTC (Universal Standard Time), a ja jestem 5 godzin na zachod od Greenwich.
To gdzie ty mieszkasz?
Bo ja na wschód od Grinicz.
To gdzie ty mieszkasz?
Bo ja na wschód od Grinicz.
Normalnie godzinę na wschód (czyli w Polsce) ale chwilowo 5 godzin na zachód.
--
Pawel {Delphi 6 Personal}
Po pierwsze: naciśnij F1
var Data:TSystemTime;
begin
GetSystemTime(data);//wes
data.wDay:=22;
SetSystemTime(data);//wstaw
end;
--
"I think I'm Dumb, maybe just happy"
procedure Form1.MonthKalendar1Click(Sender: TObject);
Var
SystemTime: TSystemTime;
rok :word;
mies :word;
dzien :word;
begin
GetLocalTime(SystemTime);
DecodeDate(MonthKalendar1.date,Rok,Mies,Dzien) ;
systemTime.wYear := Rok;
SystemTime.wMonth := Mies;
SystemTime.wDay := dzien;
SetlocalTime(SystemTime);
end;
przy użyciu "GetSystemTime(SystemTime);" dziwnie się zachowuje koło północy, ale już nie pamiętam czy przed czy po i czy w zime czy w lato.