Архив исходников программ, модулей и компонентов на Delphi


Начальная страница

Поиск по базе



Операционная система
Настройка приложения
Взаимодействия приложений
Файлы и директории
Строки и символы
Математика
Базы данных
Интернет и сеть
Мультимедиа
Аппаратная часть
VCL
Другие разделы [0]
 

Количество записей в базе - 537
Сегодня добавлено – 0

Диалоговые окна



Вернуться к списку функций
 Вызывает диалог открытия файла

 Прислал: Babay_S ( 27 сентября 2002 г. )
©  Мои раскопки
 Описание:
вызывет диалог открытия как в офисе

 Зависимости:
uses activeX

 Исходный текст:
{ **** UBPFD *********** by http://kladovka.net.ru/delphibase/ ****
>> Вызывает диалог открытия файла

вызывет диалог открытия как в офисе

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

uses activeX;

Function GetFileNameFromBrowse(hOwner:LongInt;Var sFile:String;
                              sInitDir,sDefExt,sFilter,sTitle :String): Boolean;
{Вызывает диалог открытия файла
 Пример
 GetFileNameFromBrowse(handle,b1,'c:\Install','*.txt',
'Текстовые файлы'#0'*.txt'#0'Все файлы'#0'*.*'#0#0,'Название');
 фильтр который будет использоваться должен стоять в перечне первым
}

implementation

Function SHGetFileNameFromBrowse(hOwner:LongInt;sFile:LPWSTR; nMaxFile:LongInt;
sInitDir:LPWSTR;sDefExt,sFilter,sTitle :LPWSTR): Boolean;
stdCall;External 'Shell32.dll' index 63;


//*************************** Код функций ****************************************

Function GetFileNameFromBrowse(hOwner:LongInt;Var sFile:String;
                                   sInitDir,sDefExt,sFilter,sTitle :String): Boolean;
Var sFileW,sInitDirW,sDefExtW,sFilterW,sTitleW:PWideChar;
    sFileL,sInitDirL,sDefExtL,sFilterL,sTitleL:Integer;
begin
 sFileW := CoTaskMemAlloc(255 * sizeof(WideChar));
 StringToWideChar(SFile, SFileW, 255);
 SInitDirL:=Length(sInitDir)+1;sInitDirW := CoTaskMemAlloc(SInitDirL * sizeof(WideChar));
 StringToWideChar(SInitDir, SInitDirW, sInitDirL);
 SDefExtL:=Length(sDefExt)+1;sDefExtW := CoTaskMemAlloc(SDefExtL * sizeof(WideChar));
 StringToWideChar(SDefExt, SDefExtW, sDefExtL);
 SFilterL:=Length(sFilter)+1;sFilterW := CoTaskMemAlloc(SFilterL * sizeof(WideChar));
 StringToWideChar(SFilter, SFilterW, sFilterL);
 STitleL:=Length(sTitle)+1;sTitleW := CoTaskMemAlloc(STitleL * sizeof(WideChar));
 StringToWideChar(STitle, STitleW, sTitleL);
 Result:=SHGetFileNameFromBrowse(hOwner,sFileW,Integer(sFileW),sInitDirW,
                                                         sDefExtW,sFilterW,sTitleW);
 SFile:=sFileW;
 CoTaskMemFree(sFileW);CoTaskMemFree(sInitDirW);
 CoTaskMemFree(sDefExtW);CoTaskMemFree(sFilterW);
 CoTaskMemFree(sTitleW);
end;

 Пример использования:
if GetFileNameFromBrowse(handle,b1,'c:\Install','*.txt',
'Текстовые файлы'#0'*.txt'#0'Все файлы'#0'*.*'#0#0,'Название') then
begin

end;


Вернуться к списку функций

Наверх ▲