Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.14;
Скачать: CL | DM;

Вниз

Диалог.   Найти похожие ветки 

 
Songoku ©   (2004-01-07 01:34) [0]

Как програмно вызвать это диалоговое окно у определёного фаила?


 
Dimaxx ©   (2004-01-07 01:42) [1]

Функция вызывает стандартный диалог "Свойства".

Прислал:
Babay_S (27 сентября 2002 г.)
© мои раскопки
Не тестировано

Зависимости:
uses Activex;
[2]

Исходный текст:
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Функция вызывает стандартный диалог "Свойства"

Зависимости:
uses Activex;
Автор: Babay_S
Copyright: мои раскопки
Дата: 27 сентября 2002 г.
***************************************************** }

uses Activex;

Function ObjectProperties (hOwner,uFlags:LongInt;sName,sParam:String): LongInt;
{Функция вызывает диалог "Свойства"
Параметры
hOwner - хэндл родителя.
uFlags - может принимать два значения - 1 для свойств принтера, 2 - для файла
sName - имя принтера или файла. Если вместо имени файла указаны папка или диск, вызывается соответствующее окно свойств. Если указано "" - появляются свойства Системы.
sParam - название вкладки на пропертях, которую надо показать. Если предать пустую строку или несуществующую вкладку - будет показана первая вкладка.
}

implementation

Function ObjectProperties (hOwner,uFlags:LongInt;sName,sParam:String): LongInt;
Var sNameW,sParamW:PWideChar;
sNameL,sParamL:Integer;
begin
SNameL:=Length(sName)+1;
sNameW := CoTaskMemAlloc(SNameL * sizeof(WideChar));
StringToWideChar(SName, SNameW, sNameL);
SParamL:=Length(sParam)+1;
sParamW := CoTaskMemAlloc(SParamL * sizeof(WideChar));
StringToWideChar(SParam, SParamW, sParamL);
Result:=SHObjectProperties (hOwner,uFlags,sNameW,sParamW);
CoTaskMemFree(sNameW);CoTaskMemFree(sParamW);
end;


 
Songoku ©   (2004-01-07 21:10) [2]

Большое спасибо!


 
Юрий Ж. ©   (2004-01-07 22:34) [3]

Вот попробуй еще, тут надо только ShellAPI:

function ShowFilePropertiesDialog(const Handle: HWND; const FileName: string): Boolean;
var
Info: TShellExecuteInfo;
begin
FillChar(Info, SizeOf(Info), #0);
with Info do
begin
cbSize := SizeOf(Info);
lpFile := PChar(FileName);
nShow := SW_SHOW;
fMask := SEE_MASK_INVOKEIDLIST;
Wnd := Handle;
lpVerb := "Properties";
end;
Result := ShellExecuteEx(@Info);
end;


P.S.
Кстати что-то не компилится предидущий пример:
не находит SHObjectProperties...


 
Nomolos ©   (2004-01-08 00:08) [4]

Или просто вызвать ShellAPI.ShellExecute (ShellAPI - библиотека. Если кто забыл, это тоже допустимо :) Всё по хелпу, а вместо "open" или там "print" пишешь "properties". Только не во всех масдаях работает. Лучше предыдущий пример. Он безопаснее :))



Страницы: 1 вся ветка

Текущий архив: 2004.03.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
14-43849
RealRascal
2004-02-20 16:31
2004.03.14
Хачу! Выдрать midi из игры DX-BALL. Просмотрел ресурсы ееные,


9-43241
mrz
2003-08-26 14:21
2004.03.14
Прозрачнуя текстура


1-43467
Mishenka
2004-02-27 02:35
2004.03.14
Как знать, что найденный файл является каталогом???


6-43746
E1
2004-01-09 02:38
2004.03.14
Отвлеченная: Проблема работы ICQ через маскарадинг NATD


7-43924
SkySlider
2003-12-22 13:14
2004.03.14
Обращение к принтеру