Ĺadny brzuch
1
Mam kod
function GetFileTimes(const FileName: string; var Created: TDateTime; var Accessed: TDateTime; var Modified: TDateTime): Boolean; var h: THandle; Info1, Info2, Info3: TFileTime; SysTimeStruct: SYSTEMTIME; TimeZoneInfo: TTimeZoneInformation; Bias: Double; begin Result := False; Bias := 0; h := FileOpen(FileName, fmOpenRead or fmShareDenyNone); if h > 0 then begin try if GetTimeZoneInformation(TimeZoneInfo) <> $FFFFFFFF then Bias := TimeZoneInfo.Bias / 1440; // 60x24 GetFileTime(h, @Info1, @Info2, @Info3); if FileTimeToSystemTime(Info1, SysTimeStruct) then Created := SystemTimeToDateTime(SysTimeStruct) - Bias; if FileTimeToSystemTime(Info2, SysTimeStruct) then Accessed := SystemTimeToDateTime(SysTimeStruct) - Bias; if FileTimeToSystemTime(Info3, SysTimeStruct) then Modified := SystemTimeToDateTime(SysTimeStruct) - Bias; Result := True; finally FileClose(h); end; end; end;
Niesety pokazuje on o godzinę do tyłu. Jak go przerobić? Kod znalałem w sieci i niewiele z niego rozumiem :(
2
Jak ustawić ListBox aby można było zaznaczac element nie tylko LPM ale również PPM?
Za wsio będe wdzięczny ;)
Ad 1) Skoro zwraca o godzinę za mało to do wyniku dodaj po prostu tą godzinę :)
Ad 2) Zdarzenie onmouseup ListBox'a:
procedure TForm1.ListBox1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var P: TPoint; begin P.X := X; P.Y := Y; if Button = mbright then ListBox1.ItemIndex := ListBox1.ItemAtPos(P, False); end;
Ad 1) Skoro zwraca o godzinę za mało to do wyniku dodaj po prostu tą godzinę :)
Jemu chodzi chyba o to że widzi godzinę w stylu ss:mm:hh :)
function GetFileTimes(const FileName: string; var Created: TDateTime; var Accessed: TDateTime; var Modified: TDateTime): Boolean; var h: THandle; Info1, Info2, Info3: TFileTime; SysTimeStruct: SYSTEMTIME; TimeZoneInfo: TTimeZoneInformation; Bias: Double; begin Result := False; Bias := 0; h := FileOpen(FileName, fmOpenRead or fmShareDenyNone); if h > 0 then begin try if GetTimeZoneInformation(TimeZoneInfo) <> $FFFFFFFF then Bias := TimeZoneInfo.Bias / 1440; // 60x24 GetFileTime(h, @Info3, @Info2, @Info1); if FileTimeToSystemTime(Info3, SysTimeStruct) then Modified := SystemTimeToDateTime(SysTimeStruct) - Bias; if FileTimeToSystemTime(Info2, SysTimeStruct) then Accessed := SystemTimeToDateTime(SysTimeStruct) - Bias; if FileTimeToSystemTime(Info1, SysTimeStruct) then Created := SystemTimeToDateTime(SysTimeStruct) - Bias; Result := True; finally FileClose(h); end; end; end;
Nie jestem tego pewien bo nie testowałem i nie sprawdzałem jak działa ten kod z góry.
Użytkownik DJ Mentos edytował ten post 20 maj 2007, 10:31
Jemu chodzi chyba o to że widzi godzinę w stylu ss:mm:hh :)
Nie sądzę. TDateTime to TDateTime i domyślnie jest hh:mm:ss.
Nie jestem tego pewien bo nie testowałem i nie sprawdzałem jak działa ten kod z góry.
Zmieniłeś tylko czasy (utworzenia będzie jak modyfikacji i odwrotnie)
Juz sobie poradziłem thx :)
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Mam kod
function GetFileTimes(const FileName: string; var Created: TDateTime; var Accessed: TDateTime; var Modified: TDateTime): Boolean; var h: THandle; Info1, Info2, Info3: TFileTime; SysTimeStruct: SYSTEMTIME; TimeZoneInfo: TTimeZoneInformation; Bias: Double; begin Result := False; Bias := 0; h := FileOpen(FileName, fmOpenRead or fmShareDenyNone); if h > 0 then begin try if GetTimeZoneInformation(TimeZoneInfo) <> $FFFFFFFF then Bias := TimeZoneInfo.Bias / 1440; // 60x24 GetFileTime(h, @Info1, @Info2, @Info3); if FileTimeToSystemTime(Info1, SysTimeStruct) then Created := SystemTimeToDateTime(SysTimeStruct) - Bias; if FileTimeToSystemTime(Info2, SysTimeStruct) then Accessed := SystemTimeToDateTime(SysTimeStruct) - Bias; if FileTimeToSystemTime(Info3, SysTimeStruct) then Modified := SystemTimeToDateTime(SysTimeStruct) - Bias; Result := True; finally FileClose(h); end; end; end;
Niesety pokazuje on o godzinę do tyłu. Jak go przerobić? Kod znalałem w sieci i niewiele z niego rozumiem :(
2
Jak ustawić ListBox aby można było zaznaczac element nie tylko LPM ale również PPM?
Za wsio będe wdzięczny ;)
Ad 1) Skoro zwraca o godzinę za mało to do wyniku dodaj po prostu tą godzinę :)
Ad 2) Zdarzenie onmouseup ListBox'a:
procedure TForm1.ListBox1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var P: TPoint; begin P.X := X; P.Y := Y; if Button = mbright then ListBox1.ItemIndex := ListBox1.ItemAtPos(P, False); end;
Ad 1) Skoro zwraca o godzinę za mało to do wyniku dodaj po prostu tą godzinę :)
Jemu chodzi chyba o to że widzi godzinę w stylu ss:mm:hh :)
function GetFileTimes(const FileName: string; var Created: TDateTime; var Accessed: TDateTime; var Modified: TDateTime): Boolean; var h: THandle; Info1, Info2, Info3: TFileTime; SysTimeStruct: SYSTEMTIME; TimeZoneInfo: TTimeZoneInformation; Bias: Double; begin Result := False; Bias := 0; h := FileOpen(FileName, fmOpenRead or fmShareDenyNone); if h > 0 then begin try if GetTimeZoneInformation(TimeZoneInfo) <> $FFFFFFFF then Bias := TimeZoneInfo.Bias / 1440; // 60x24 GetFileTime(h, @Info3, @Info2, @Info1); if FileTimeToSystemTime(Info3, SysTimeStruct) then Modified := SystemTimeToDateTime(SysTimeStruct) - Bias; if FileTimeToSystemTime(Info2, SysTimeStruct) then Accessed := SystemTimeToDateTime(SysTimeStruct) - Bias; if FileTimeToSystemTime(Info1, SysTimeStruct) then Created := SystemTimeToDateTime(SysTimeStruct) - Bias; Result := True; finally FileClose(h); end; end; end;
Nie jestem tego pewien bo nie testowałem i nie sprawdzałem jak działa ten kod z góry.
Użytkownik DJ Mentos edytował ten post 20 maj 2007, 10:31
Jemu chodzi chyba o to że widzi godzinę w stylu ss:mm:hh :)
Nie sądzę. TDateTime to TDateTime i domyślnie jest hh:mm:ss.
Nie jestem tego pewien bo nie testowałem i nie sprawdzałem jak działa ten kod z góry.
Zmieniłeś tylko czasy (utworzenia będzie jak modyfikacji i odwrotnie)
Juz sobie poradziłem thx :)