Имя: Пароль:
1C
1C 7.7
v7: Еще один диалог открытия/сохранения файлов в адинес (HtmlDlgHelper)
,
0 smaharbA
 
08.08.11
13:32
Есть некоторые особенности и варианты использования

//*******************************************
Процедура Сформировать()
   Перем Окно;
   Сигнатура=_GetPerformanceCounter();
   ЗапуститьПриложение("mshta ""about:
   |<hta:application border='none' caption='no' showintaskbar='no' />
   |<body onload=""javascript:window.resizeTo(0,0);obj.object.PutProperty('Сигнатура','"+Сигнатура+"')"">
   |    <object id='obj' classid='clsid:8856F961-340A-11D0-A96B-00C04FD705A2'><param name=RegisterAsBrowser value=1></object>
   |    <object id='dlg' classid='clsid:3050f4e1-98b5-11cf-bb82-00aa00bdce0b'></object>
   |</body>
   |""");
   ХТМЛ = СоздатьОбъект("htmlfile");
   ХТМЛ.Open("text/html");
   //<-- Подготовим нужные методы
   ХТМЛ.Write("<script>Новый=function(x,y){return new x(y)}</script>");
   Это=ХТМЛ.documentElement.document.script;
   Шел=СоздатьОбъект("Shell.Application");
   Начало=_GetPerformanceCounter();
   Пока (_GetPerformanceCounter()-Начало<3000) и (ПустоеЗначение(Окно)=1) Цикл
       Окна=Это.Новый(Это.Enumerator,Шел.Windows());
       Пока Окна.atEnd(0)=0 Цикл
           Если Строка(Сигнатура)=Окна.item(0).GetProperty("Сигнатура") Тогда
               Окно=Окна.item(0);
               Прервать;
           КонецЕсли;
           Окна.moveNext(0);
       КонецЦикла;
   КонецЦикла;
   Док=Окно.document;
   Окно=Док.parentWindow;
   Диалог=Окно.dlg.object;
   Диалог.openfiledlg("C:\*.jpg;*.gif;*.png;*.bmp ",,"Картинки (*.jpg;*.gif;*.png;*.bmp)|*.jpg;*.gif;*.png;*.bmp|Все файлы (*.*)|*.*","Выберите картинку...");
   Окно.close();
КонецПроцедуры
1 Ёпрст
 
08.08.11
13:37
(0) длинные имена файлов пасёт ?
ну, >256 символов в пути ?
2 palpetrovich
 
08.08.11
13:37
тормозит
открывает окно выбора файла
при выборе - меняе фокус в пофигуратор и все :)
а че должно получиться?
3 smaharbA
 
08.08.11
13:41
(1) х.з.
4 smaharbA
 
08.08.11
13:42
(2) смотри код, оно и будет тормозить )
5 palpetrovich
 
08.08.11
13:43
короче нифига непонятно куда собственн овозвращается выбранная картинка  - просто извращаемся, да? ;)
6 palpetrovich
 
08.08.11
13:44
Это.Enumerator,Шел.Windows() - гы
7 andrewks
 
08.08.11
13:49
(6) COMОбъект тебя больше устраивает, да?
8 Злопчинский
 
08.08.11
13:50
''' а в чем скрытый сакральный смысл?
9 smaharbA
 
08.08.11
13:59
(8) не в чем, актив икс на форме и будут три диалога
openfiledlg, savefiledlg и choosecolordlg
10 smaharbA
 
08.08.11
13:59
+ (0)

Сообщить(Диалог.openfiledlg(...
11 palpetrovich
 
08.08.11
14:04
(7) не, я про shell :)