Форум: "WinAPI";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];
ВнизДиалог. Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.014 c