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