Установка нескольких атрибутов сразу

Тема в разделе "Delphi - Компоненты", создана пользователем Shouldercannon, 1 май 2011.

  1. Shouldercannon

    Shouldercannon Well-Known Member

    Регистрация:
    25 май 2010
    Сообщения:
    125
    Симпатии:
    0
    Встала задача установки сразу нескольких атрибутов файлу, например: Файл только для чтения, Скрытый файл, Системный файл, Сжатый файл.
    Атрибуты задаются через CheckBox's.
    1. Куда поместить список всех выбранных атрибутов через CheckBox's?
    2. Как их применить к файлу?
    В ручную это будет так
    Код (Delphi):
    FileSetAttr('test.txt', faReadOnly or faHidden or faSysFile or faArchive);
     
  2. sinkopa

    sinkopa Well-Known Member

    Регистрация:
    17 июн 2009
    Сообщения:
    344
    Симпатии:
    9
    :) А чего? Слабо курсор поставить на FileSetAttr, нажать F1 и...
    Прочитать следующее?:
    Код (Delphi):
    { The following code reads a file's attributes into a set variable, sets the check boxes in a file-attribute dialog box to represent the current attributes, then executes the dialog box. If the user changes and accepts any dialog box settings, the code sets the file attributes to match the changed settings:}

    procedure TFMForm.Properties1Click(Sender: TObject);
    var
    Attributes, NewAttributes: Word;
    begin
    with FileAttrForm do
    begin
    FileDirName.Caption := FileList.Items[FileList.ItemIndex];
    { set box caption }
    PathName.Caption := FileList.Directory;
    { show directory name }
    ChangeDate.Caption :=
    DateTimeToStr(FileDateToDateTime(FileAge(FileList.FileName)));
    Attributes := FileGetAttr(FileDirName.Caption);
    { read file attributes }
    ReadOnly.Checked := (Attributes and SysUtils.faReadOnly) = faReadOnly;
    Archive.Checked := (Attributes and faArchive) = faArchive;
    System.Checked := (Attributes and faSysFile) = faSysFile;
    Hidden.Checked := (Attributes and faHidden) = faHidden;
    if ShowModal <> id_Cancel then  { execute dialog box }
    begin
    NewAttributes := Attributes;
    { start with original attributes }
    if ReadOnly.Checked then
    NewAttributes := NewAttributes or SysUtils.faReadOnly
    else
    NewAttributes := NewAttributes and not SysUtils.faReadOnly;
    if Archive.Checked then
    NewAttributes := NewAttributes or faArchive
    else
    NewAttributes := NewAttributes and not faArchive;
    if System.Checked then
    NewAttributes := NewAttributes or faSysFile
    else
    NewAttributes := NewAttributes and not faSysFile;
    if Hidden.Checked then
    NewAttributes := NewAttributes or faHidden
    else
    NewAttributes := NewAttributes and not faHidden;
    if NewAttributes <> Attributes then { if anything changed... }
    FileSetAttr(FileDirName.Caption, NewAttributes);
    { ...write the new values }
    end;
    end;
    end;
     
Загрузка...
Похожие Темы - Установка нескольких атрибутов
  1. Serj100500
    Ответов:
    4
    Просмотров:
    48
  2. geliz
    Ответов:
    1
    Просмотров:
    692
  3. Vander
    Ответов:
    14
    Просмотров:
    2.550
  4. lionk
    Ответов:
    4
    Просмотров:
    755
  5. dimat
    Ответов:
    50
    Просмотров:
    6.314

Поделиться этой страницей