📄 ajfileeditparams.pas
字号:
fajWheelSupport := TajAddWheelSupport.Create(Self);
cbSynchronize.TabOrder := 8;
end; {FormCreate}
{--------------------------------------------------------------------------------------------------}
procedure TfrmEditFileParams.FormShow(Sender : TObject);
var
lp1 : integer;
begin
with fWin32FindData do begin
for lp1 := 0 to 2 do begin
case lp1 of
0 : SetDate(lp1, FileTimeToDateTime(ftCreationTime ));
1 : SetDate(lp1, FileTimeToDateTime(ftLastWriteTime ));
2 : SetDate(lp1, FileTimeToDateTime(ftLastAccessTime));
end; {case}
end; {for}
cbReadOnly.Checked := ((dwFileAttributes and FILE_ATTRIBUTE_READONLY) <> 0);
cbHidden.Checked := ((dwFileAttributes and FILE_ATTRIBUTE_HIDDEN ) <> 0);
cbSystem.Checked := ((dwFileAttributes and FILE_ATTRIBUTE_SYSTEM ) <> 0);
cbArchive.Checked := ((dwFileAttributes and FILE_ATTRIBUTE_ARCHIVE ) <> 0);
end; {with}
end; {FormShow}
{--------------------------------------------------------------------------------------------------}
procedure TfrmEditFileParams.FormClose(Sender : TObject; var Action: TCloseAction);
begin
if (ModalResult <> mrOK) then
ModalResult := mrCancel;
end; {FormClose}
{--------------------------------------------------------------------------------------------------}
procedure TfrmEditFileParams.FormDestroy(Sender : TObject);
begin
fajWheelSupport.Free;
end; {FormDestroy}
{--------------------------------------------------------------------------------------------------}
procedure TfrmEditFileParams.SetfFileHandle(Value : THandle);
var
lp1 : integer;
begin
fFileHandle := Value;
if (fFileHandle = INVALID_HANDLE_VALUE) then begin
pnBack.Enabled := false;
for lp1 := 0 to 2 do
fCheckBox[lp1].Checked := false;
end; {if}
end; {SetfFileHandle}
{--------------------------------------------------------------------------------------------------}
function TfrmEditFileParams.GetSaveAttributes : boolean;
begin
Result := cbModify.Checked;
end; {GetSaveAttributes}
{--------------------------------------------------------------------------------------------------}
function TfrmEditFileParams.GetDate(Index : integer) : TDateTime;
begin
if fCheckBox[Index].Checked then
Result := Trunc(fDateEdit[Index].Date) + Frac(fTimeEdit[Index].DateTime)
else
Result := 0;
end; {GetDate}
{--------------------------------------------------------------------------------------------------}
procedure TfrmEditFileParams.SetDate(Index : integer; Value : TDateTime);
begin
fDateEdit[Index].DateTime := Value;
fTimeEdit[Index].DateTime := Value;
end; {SetDate}
{--------------------------------------------------------------------------------------------------}
procedure TfrmEditFileParams.CheckBoxClick(Sender : TObject);
begin
with Sender as TCheckBox do begin
fDateEdit[Tag].Enabled := Checked;
fTimeEdit[Tag].Enabled := Checked;
end; {with}
btnUpdate.Enabled := fCheckBox[0].Checked or fCheckBox[1].Checked or fCheckBox[2].Checked or cbModify.Checked;
end; {CheckBoxClick}
{--------------------------------------------------------------------------------------------------}
procedure TfrmEditFileParams.SetAllDates(Value : TDateTime);
var
lp1 : integer;
begin
for lp1 := 0 to pred(pnBack.ControlCount) do begin
if (pnBack.Controls[lp1] is TDateTimePicker) then
TDateTimePicker(pnBack.Controls[lp1]).DateTime := Value
else if (pnBack.Controls[lp1] is TajTimeEdit) then
TajTimeEdit(pnBack.Controls[lp1]).DateTime := Value;
end; {for}
end; {SetAllDates}
{--------------------------------------------------------------------------------------------------}
procedure TfrmEditFileParams.dtDateChange(Sender : TObject);
begin
if cbSynchronize.Checked then begin
if (Sender is TDateTimePicker) then
SetAllDates(TDateTimePicker(Sender).DateTime)
else
SetAllDates(TajTimeEdit(Sender).DateTime);
end; {if}
end; {dtDateChange}
{--------------------------------------------------------------------------------------------------}
procedure TfrmEditFileParams.cbSynchronizeClick(Sender : TObject);
begin
if cbSynchronize.Checked then
SetAllDates(Trunc(fDateEdit[0].Date) + Frac(fTimeEdit[0].DateTime));
end; {cbSynchronizeClick}
{--------------------------------------------------------------------------------------------------}
procedure TfrmEditFileParams.btnNowClick(Sender : TObject);
begin
SetAllDates(Now);
end; {btnNowClick}
{--------------------------------------------------------------------------------------------------}
procedure TfrmEditFileParams.btnClearTimeClick(Sender : TObject);
var
lp1 : integer;
begin
for lp1 := 0 to pred(pnBack.ControlCount) do begin
if (pnBack.Controls[lp1] is TDateTimePicker) then
TDateTimePicker(pnBack.Controls[lp1]).DateTime := Trunc(TDateTimePicker(pnBack.Controls[lp1]).DateTime)
else if (pnBack.Controls[lp1] is TajTimeEdit) then
TajTimeEdit(pnBack.Controls[lp1]).ClearTime;
end; {for}
end; {btnClearTimeClick}
{--------------------------------------------------------------------------------------------------}
procedure TfrmEditFileParams.btnUpdateClick(Sender : TObject);
var
lp1 : integer;
begin
with fWin32FindData do begin
for lp1 := 0 to 2 do begin
case lp1 of
0 : fWin32FindData.ftCreationTime := DateTimeToFileTime(GetDate(lp1));
1 : fWin32FindData.ftLastWriteTime := DateTimeToFileTime(GetDate(lp1));
2 : fWin32FindData.ftLastAccessTime := DateTimeToFileTime(GetDate(lp1));
end; {case}
end; {for}
dwFileAttributes := FILE_ATTRIBUTE_READONLY * ord(cbReadOnly.Checked) or
FILE_ATTRIBUTE_HIDDEN * ord(cbHidden.Checked ) or
FILE_ATTRIBUTE_SYSTEM * ord(cbSystem.Checked ) or
FILE_ATTRIBUTE_ARCHIVE * ord(cbArchive.Checked );
end; {with}
ModalResult := mrOK;
end; {btnUpdateClick}
{--------------------------------------------------------------------------------------------------}
procedure TfrmEditFileParams.btnCancelClick(Sender : TObject);
begin
ModalResult := mrCancel;
end; {btnCancelClick}
{--------------------------------------------------------------------------------------------------}
procedure TfrmEditFileParams.cbModifyClick(Sender : TObject);
var
lp1 : integer;
begin
for lp1 := 0 to pred(pnAttributes.ControlCount) do begin
if (pnAttributes.Controls[lp1] is TCheckBox) then begin
if (TCheckBox(pnAttributes.Controls[lp1]) <> cbModify) then
TCheckBox(pnAttributes.Controls[lp1]).Enabled := cbModify.Checked;
end; {if}
end; {for}
btnUpdate.Enabled := fCheckBox[0].Checked or fCheckBox[1].Checked or fCheckBox[2].Checked or cbModify.Checked;
end; {cbModifyClick}
{--------------------------------------------------------------------------------------------------}
{ajFileEditParams}
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -