⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ajfileeditparams.pas

📁 FileBrowser, source code for delphi
💻 PAS
📖 第 1 页 / 共 2 页
字号:

  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 + -