Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
6-43712
AlexeyITN
2004-01-08 14:32
2004.03.14
Сеть и Хранитель экрана


14-43824
тихий вовочка
2004-02-22 22:15
2004.03.14
Где взять Interbase?


1-43610
Sirruf
2004-03-02 17:19
2004.03.14
Компонент TDBGridEh, черт бы его побрал !!!


6-43717
|e0|0uP
2004-01-07 19:06
2004.03.14
ClientSocket.Socket.SendTex( );


7-43927
Mihin
2003-12-25 08:29
2004.03.14
Печать в текстовом режиме





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский