|
|
|
MessageBox из 1C | ☑ | ||
|---|---|---|---|---|
|
0
Viktor Zull
18.10.06
✎
20:14
|
Нужно вывести окно сообщения. Для этого используется функция MessageBox(<handle>,<text>,<caption>,<type>) из файла USER32.dll. Использую COMОбъект DynamicWrapper.
Создана такая процедура: Процедура ОкноСообщения(ТекстСообщения,Заголовок,Режим) Экспорт Попытка Library = Новый COMОбъект("DynamicWrapper"); ResHandle = 0 ; Library.Register ("USER32.DLL", "FindWindow", "i=ls", "f=s", "r=l"); ResHandle = Library.FindWindow(NULL, "1С:Предприятие - "+ПолучитьЗаголовокСистемы()); Если ResHandle > 0 Тогда Library.Register("USER32.DLL", "MessageBox", "i=lrrl"); Library.MessageBox(ResHandle,ТекстСообщения,Заголовок,Режим); КонецЕсли; Исключение КонецПопытки; КонецПроцедуры Вызов процедуры: ОкноСообщения("Message","Caption",0); Окно появляется, вот только вместо нужного текста квадратики и вопросительные знаки. Подскажите что нужно подправить, чтобы в окне выводился нужный текст. Возможно это связано с тем что нужно передавать парметры должны быть не строками, а массивами символов и не в UNICODE а в ASCII. |
|||
|
1
smaharbA
18.10.06
✎
20:21
|
Нафига тебе враппер ? Все и без него можно
|
|||
|
2
Viktor Zull
18.10.06
✎
20:58
|
Как можно ?
|
|||
|
3
smaharbA
18.10.06
✎
21:10
|
(2)
... Заметь тут модальное сообщение для всей системы и три кнопаря :) |
|||
|
4
Viktor Zull
18.10.06
✎
21:28
|
У меня при выполнении процедуры Сформировать появилась ошибка:
Произошла исключительная ситуация (Ошибка компиляции Microsoft VBScript): Недопустимый знак Почему? |
|||
|
5
smaharbA
18.10.06
✎
21:29
|
(4) ну это семерка, под восьмерку сам переделвай, но еще незабудь что в VBScript нельзя русские символы в качестве переменных
|
|||
|
6
Viktor Zull
18.10.06
✎
21:50
|
В строке:
Скрипт.ExecuteStatement("prop="+(4096+3+16)); кавычки не поставлены, вот ошибка и вылезала: Скрипт.ExecuteStatement("prop="""+(4096+3+16)+""""); А в остальном только в первой строке отличие: Процедура Сформировать() Экспорт Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl"); Скрипт.Language="vbscript"; Стр="Страх"; Заг="Ужас..."; Скрипт.ExecuteStatement("text="""+Стр+""""); Скрипт.ExecuteStatement("head="""+Заг+""""); Скрипт.ExecuteStatement("prop="""+(4096+3+16)+""""); Сообщить(Скрипт.Eval("msgbox(text,prop,head)")); КонецПроцедуры Спасибо Вам,smaharbA, за помощь. Только вот вопрос еще: как изменить пиктограмму в этом окне, а то в этом случае окно ошибки получается. А мне надо, чтобы это информационное окно было и кнопка была только одна "OK". |
|||
|
7
Viktor Zull
18.10.06
✎
21:59
|
Я в строке:
Скрипт.ExecuteStatement("prop="""+(4096+3+16)+""""); числа в скобках меняю и окно каждый раз разное получается, иногда надписи на кнопках на русском языке получаются. Подскажите, как правильно эти параметры задаются. |
|||
|
8
smaharbA
19.10.06
✎
06:51
|
Скрипт.ExecuteStatement("prop=cint("""+(4096+3+16)+""")");
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |