Вниз
Скачать: CL | DM;

экспорт   Найти похожие ветки 

 
Purgen   (2006-01-06 13:37) [0]

function SHGetFileNameFromBrowse(hOwner: LongInt; sFile: LPWSTR; nMaxFile:
 LongInt;
 sInitDir: LPWSTR; sDefExt, sFilter, sTitle: LPWSTR): Boolean;
 stdcall; external "Shell32.dll" index 63;


Опять вопрос. При передаче строк в эту функцию из ME они видоизменяются во всякую чушь типа )№;)__0-(* и т.д. Может виноват stdcall???


 
Игорь Шевченко ©   (2006-01-06 14:20) [1]


> Может виноват stdcall???


Не виноват.

А как строки передаешь ?


 
Purgen   (2006-01-06 17:43) [2]

вот весь код:

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;


а в обработчике события


GetFileNameFromBrowse(handle, filename, "c:\Install", "*.bmp",
 "Текстовые файлы"#0"*.bmp"#0"Все файлы"#0"*.*"#0#0, "")


Диалоговое окно открывается но вместо типов файлов всякая чушь!!! Я так понял виноваты "строки", которые передаются в функцию...ну там "c:\install" и т.д. в том числе и ""Текстовые файлы"#0"*.bmp"#0"Все файлы"#0"*.*"#0#0,"... Именно они не показываются в диалоге ME...(в XP все идет)



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.031 c
1-1135001045
ССТ
2005-12-19 17:04
2006.01.22
Чтение содержимого окна-таблицы


14-1135719528
MegaVovan
2005-12-28 00:38
2006.01.22
Где можно качнуть Delphi 8!


3-1132813494
Ярослав
2005-11-24 09:24
2006.01.22
Удалить незаблокированные записи


2-1136460168
Vek
2006-01-05 14:22
2006.01.22
Как сделать чтобы открывался текстовый файл в блокноте


2-1136637611
Igorioha
2006-01-07 15:40
2006.01.22
Blob




   Наверх