|  05.08.2008, 16:44 | #1 | 
| Участник | Диалог выбора каталога 
			
			Добрый вечер, коллеги. Есть в аксапте замечательный EDT FilePath с lookup-формой SysPathName. Так вот выяснился пренеприятнейший факт, связанный с этими объектами  Они не умеют "запоминать" путь для точного позиционирования на нужное место...  Как это например с легкостью делает диалог открытия/сохранения файлов... Дело в том, что грустно каждый раз проходить длинный путь, начиная от Рабочего стола, до нужной папки, а стандартного решения не нашлось  Кто-нибудь пытался решить эту задачу? Или может есть другие возможности в Аксапте, решающие данную проблему? | 
|  | 
|  05.08.2008, 17:15 | #2 | 
| Участник | 
			
			Модифицировать форму FilePathLookup_RU - сохранять последний выбранный путь в xSysLastValue, при выборе передавать ее в метод browseForFolder этой формы третьим параметром.
		 | 
|  | 
|  06.08.2008, 10:54 | #3 | 
| Участник | 
			
			в четверке эту форму прибили похоже, глянул в 3ку, но все равно она поставленной задачи не решает   диалог выбора каталога все равно открывается по default'у на рабочем столе, а 3ий параметр метода browseForFolder всего лишь берется в том, случае если мы ничего не выбрали в диалоге. Вот код того метода в 3.0: X++: str browseForFolder(int _hwnd, str _title, str _defaultFolder = "") { str folder; int il; // Declare the DLL's we need to use DLL dll = new DLL(#dLL); DLLFunction shBrowseForFolder = new DLLFunction(dll, #browseFolder); DLLFunction shGetPathFromIDList = new DLLFunction(dll, #browsePath); DLL dllOle = new DLL(#dLLOLE); DLLFunction coTaskMemFree = new DLLFunction(dllOle, #dLLFuncMemFree); Binary struct = new Binary(#structSize); Binary titleStruct = new Binary(strlen(_title) + 1); Binary folderStruct = new Binary(#fileNameLength); shBrowseForFolder.returns(ExtTypes::DWORD); shBrowseForFolder.arg(ExtTypes::POINTER); shGetPathFromIDList.returns(ExtTypes::DWORD); shGetPathFromIDList.arg(ExtTypes::DWORD, ExtTypes::POINTER); coTaskMemFree.arg(ExtTypes::DWORD); titleStruct.string(0, _title); struct.dWord(0, _hwnd); // hwndOwner struct.dWord(4, 0); // pidlRoot struct.dWord(8, 0); // pszDisplayName struct.binary(12, titleStruct); // lpszTitle struct.dWord(16, 0); // ulFlags struct.dWord(20, 0); // lpfn struct.dWord(24, 0); // lParam struct.dWord(28, 0); // iImage // Put up the Select Folder dialogue il = shBrowseForFolder.call(struct); if (il) { // extract folder name if (shGetPathFromIDList.call(il, folderStruct)) { folder = folderStruct.string(0); } // clean up coTaskMemFree.call(il); } else { folder = _defaultFolder; } return folder; }   | 
|  | 
| Теги | 
| ax3.0 | 
|  | 
|  Похожие темы | ||||
| Тема | Ответов | |||
| Элемент диалога, для выбора из списка | 11 | |||
| Диалог выбора файла | 7 | |||
| финансовые аналитики в диалог | 6 | |||
| Диалог на отчете, то работает, то нет | 6 | |||
| Диалог открытия файлов | 1 | |||
| 
 |