我试图获得与Windows属性中显示的相同的创建,访问和修改日期,如下所示:

但我发现时间一直是30分钟:

相信它可能与时区/夏令时有关,但一直无法找到解决方案.试过看:TimeZone Bias并调整和查看不同的方法,包括: 如何在Delphi中获取文件的创建/最后修改日期?
当前代码:
var
MyFd TWin32FindData;
FName: string;
MyTime: TFileTime;
MySysTime: TSystemTime;
myDate, CreateTime, AccessTime, ModTime: TDateTime;
Begin
...
FindFirstFile(PChar(FName), MyFd);
MyTime:=MyFd.ftCreationTime;
FileTimeToSystemTime(MyTime, MySysTime);
myDate := EncodeDateTime(MySysTime.wYear, MySysTime.wMonth, MySysTime.wDay, MySysTime.wHour,
MySysTime.wMinute, MySysTime.wSecond, MySysTime.wMilliseconds);
Memo1.Lines.Add('Created: '+ FormatDateTime('dddd, d mmmm yyyy, hh:mm:ss ampm', MyDate));
...
Run Code Online (Sandbox Code Playgroud)
任何帮助赞赏
谢谢保罗
我试图在Delphi控制台应用程序中创建一个微调/等待光标.我可以做到,但我确信代码可以得到简化/改进.请原谅可怜的代码:
Procedure PositionXY( x , y : Integer);
var
hStdOut: HWND;
ScreenBufInfo: TConsoleScreenBufferInfo;
Coord1: TCoord;
z: Integer;
Begin
sleep(100);
hStdOut := GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hStdOut, ScreenBufInfo);
Coord1.X := x;
Coord1.Y := y;
SetConsoleCursorPosition(hStdOut, Coord1);
End;
begin
while True do begin
Write('|');
PositionXY(0,0);
Write('/');
PositionXY(0,0);
Write('-');
PositionXY(0,0);
Write('\');
PositionXY(0,0);
end;
ReadLn;
end.
Run Code Online (Sandbox Code Playgroud)
在此先感谢保罗
我对 Firemonkey Stringgrid 进行排序的基本尝试,因为找不到任何其他示例。我欢迎任何关于最好地实现这一目标的优化或其他建议。我的代码基本上获取选择的列进行排序,并使用该排序顺序完成其他列:
procedure TfrmMain.StringGridSort(StrGrid: TStringGrid; SortColumn: Integer);
var
col, row, rowx: Integer;
MySortCol, MyListCols: TStringList;
begin
MySortCol := TStringList.Create;
MyListCols := TStringList.Create;
try
MySortCol.Sort;
MyListCols.Sorted := False;
StrGrid.BeginUpdate;
try
for row := 0 to StrGrid.RowCount - 1 do
MySortCol.AddObject(StrGrid.Cells[SortColumn, row], TObject(row));
MySortCol.Sorted := True;
for row := 0 to StrGrid.RowCount - 1 do
StrGrid.Cells[SortColumn, row] := MySortCol[row];
for col := 0 to StrGrid.ColumnCount - 1 do
if col <> SortColumn then
begin
MyListCols.Clear;
for row := 0 to …Run Code Online (Sandbox Code Playgroud) 我有一个分隔文本字符串,即:Value1:Value2:Value3:Value4:Value5:Value6
例如,我将如何提取特定值Ie:
Label.caption := GetValuefromDelimitedText(2);获取Value2
提前致谢
保罗