unit Unit1;
interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, SoCtrls, SoSpecEdit, ShellAPI;
type
TForm1 = class(TForm)
Button1: TButton;
sohoFilenameEdit1: TsohoFilenameEdit;
procedure Button1Click(Sender: TObject);
private{ Private declarations }public{ Public declarations }end;
var
Form1: TForm1;
implementation{$R *.DFM}procedure ShowPropertiesDialog(FName: string);
var
SExInfo: TSHELLEXECUTEINFO;
Error: LongInt;
begin
ZeroMemory(Addr(SExInfo),SizeOf(SExInfo));
SExInfo.cbSize := SizeOf(SExInfo);
SExInfo.lpFile := PChar(FName);
SExInfo.lpVerb := 'properties';
SExInfo.fMask := SEE_MASK_INVOKEIDLIST;
ShellExecuteEx(Addr(SExInfo));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowPropertiesDialog(sohoFilenameEdit1.FileName);
end;
end.
Программа на Delphi, демонстрирующая использование функции ShellExecuteEx из модуля ShellAPI для отображения диалогового окна свойств файла.
Содержание программы разбивается на следующие части:
unit Unit1; - объявление начала нового модуля Delphi с именем "Unit1".
Секция interface содержит объявления типов, переменных и процедур, которые будут использоваться в этом модуле.
Класс TForm1 определяется как наследник стандартного класса Delphi для форм (TForm). Он имеет две свойства: Button1 (кнопка управления) и sohoFilenameEdit1 (редактор для имени файла).
Процедура Button1Click вызывается при клике на кнопку на форме. Она вызывает другую процедуру, называемую ShowPropertiesDialog, с параметром - именем файла из редактора.
Секция implementation содержит реализацию процедур и функций, объявленных в секции interface.
Процедура ShowPropertiesDialog принимает имя файла как строку, инициализирует экземпляр записи TSHELLEXECUTEINFO, устанавливает необходимые поля для этой записи (cbSize, lpFile, lpVerb, fMask), а затем вызывает функцию ShellExecuteEx с этим экземпляром для отображения диалогового окна свойств для указанного файла.
Directive {$R *.DFM} tells the compiler to include a resource file named "Unit1.DFM" in the compilation process. This is a standard way of including form files in Delphi projects.
Альтернативное решение с использованием функции Windows API ShellExecute вместо ShellExecuteEx:
Эта программа проще и легче для чтения, но имеет меньше гибкости в контроле выполнения команд оболочки. Например, ShellExecuteEx позволяет указать, должен ли быть отображен или скрыт окно, содержащее диалоговое окно свойств, а ShellExecute всегда отображает это окно.
В статье описывается пример программы на языке Pascal, которая позволяет показать свойства файла с помощью функции ShellExecuteEx из библиотеки Windows.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.