Уроки, Туториалы, Мануалы со всего света!
https://lessons.forumenko.com/

Delphi - Работа с атрибутами файлов
https://lessons.forumenko.com/topic61.html
Страница 1 из 1

Автор:  Turbo-Dizel [ 19-12, 04:02 ]
Заголовок сообщения:  Delphi - Работа с атрибутами файлов

Учимся работать с атребутами файлов
нам понадобится:
Edit - 1 штука
Button - 1 штука
RadioButton - 6 штук

бросаем их на на форму... для удобства я их вставил в RadioGroup
можно прямиком на форму...
чтобы у нас получилось так как на картинке
Изображение
для Button1 код должен быть такой:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
   selectedFile   : string;
begin
   if PromptForFileName(selectedFile,
                        'Text files (*.*)|*.*',
                        '',
                        'Выбираем фаил',
                        'C:\',
                        False)
   then

     Edit1.Text := (selectedFile)

   else
     ShowMessage('Фаил не выбран');
end;

На RadioButton пишем
Код:
SetFileAttributes(путь к файлу, задаваемый атребут)

а так как путь к файлу у нас хранится в Edit то код будет выглядеть так
Код:
SetFileAttributes(PChar(Edit1.Text),задаваемый атребут)

виды атребутов:
faReadOnly - только для чтения
faHidden - скрытый
faSysFile - системный
faVolumeID - мультимедийный
faArchive - архивный
faAnyFile - невидимый (виден только файловыми менеджерами и то невсеми )

в итоге получаем нехитрую програмку меняющую атребуты файлам
Код:
unit atrib;

interface

uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, StdCtrls, ExtCtrls, ShellAPI, ShlObj;

type
   TForm1 = class(TForm)
     RadioGroup1: TRadioGroup;
     RadioButton1: TRadioButton;
     RadioButton2: TRadioButton;
     RadioButton3: TRadioButton;
     RadioButton4: TRadioButton;
     RadioButton5: TRadioButton;     
     RadioButton6: TRadioButton;
     
     Button1: TButton;
     Label2: TLabel;
     Edit1: TEdit;
     procedure RadioButton2Click(Sender: TObject);
     procedure RadioButton3Click(Sender: TObject);
     procedure RadioButton4Click(Sender: TObject);
     procedure RadioButton6Click(Sender: TObject);
     procedure RadioButton5Click(Sender: TObject);
     procedure RadioButton1Click(Sender: TObject);
     procedure Button1Click(Sender: TObject);
   
   private
     { Private declarations }
   public
     { Public declarations }
   end;

var
   Form1: TForm1;
   E:string;
implementation

{$R *.dfm}

procedure TForm1.RadioButton1Click(Sender: TObject);
begin
  SetFileAttributes(PChar(Edit1.Text), faReadOnly );
end;

procedure TForm1.RadioButton2Click(Sender: TObject);
begin
SetFileAttributes(PChar(Edit1.Text), faHidden );
end;

procedure TForm1.RadioButton3Click(Sender: TObject);
begin
SetFileAttributes(PChar(Edit1.Text), faSysFile);
end;

procedure TForm1.RadioButton4Click(Sender: TObject);
begin
SetFileAttributes(PChar(Edit1.Text), faVolumeID);
end;

procedure TForm1.RadioButton5Click(Sender: TObject);
begin
SetFileAttributes(PChar(Edit1.Text), faArchive );
end;

procedure TForm1.RadioButton6Click(Sender: TObject);
begin
SetFileAttributes(PChar(Edit1.Text), faAnyFile);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
   selectedFile   : string;
begin
   if PromptForFileName(selectedFile,
                        'Text files (*.*)|*.*',
                        '',
                        'Выбираем фаил',
                        'C:\',
                        False)
   then

     Edit1.Text := (selectedFile)

   else
     ShowMessage('Фаил не выбран');
end;

end.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/