|
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 :)
|
|
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший