| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Окно MsgBox не закрывается с первого клика по кнопке ОК. AutoCAD 2012.

Окно MsgBox не закрывается с первого клика по кнопке ОК. AutoCAD 2012.

Ответ
Поиск в этой теме
Непрочитано 19.10.2020, 12:50 #1
Окно MsgBox не закрывается с первого клика по кнопке ОК. AutoCAD 2012.
deaf red
 
Регистрация: 16.09.2020
Сообщений: 15

Работаю в автокаде 2012. При выполнении кода VBA, даже если код выглядит так:
Код:
[Выделить все]
Sub mySub()
MsgBox "Hello, world"
End Sub
, то окно, которое вызовет эта процедура не закроется с первого клика по кнопке "ОК", окно закроется раза с пятого, а может с тридцатого (число кликов всегда разное).

Тот же код запущенный из VBA экселя работает нормально. Как сделать так чтобы MsgBox закрывался с первого раза?
Просмотров: 2302
 
Непрочитано 19.10.2020, 13:06
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 38,115


ACAD2013 (2012-го нет), код
Код:
[Выделить все]
Option Explicit

Public Sub TestSub()
    MsgBox "hi", vbOKOnly + vbInformation, "title"
End Sub
срабатывает корректно (правда, MessageBox почему-то не активируется автоматом при запуске из-под VBAIDE, что требует дополнительного клика; при вызове через _.vbarun все нормально).
Offtop: Я бы не делал ставку на VBA.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.10.2020, 13:11
#3
trir


 
Регистрация: 18.12.2010
Сообщений: 4,511


не использовать AutoCAD 2012 и VBA - там были жуткие проблемы с GUI (связанно с миграцией на x64)
trir вне форума  
 
Непрочитано 19.10.2020, 13:30
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 38,115


Offtop: А не позже они появились, эти проблемы? Я просто не помню, в какой версии переходили на VBA новой версии (кажется, 7.1)
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.10.2020, 13:31
#5
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,274


Цитата:
Сообщение от trir Посмотреть сообщение
не использовать AutoCAD 2012 и VBA - там были жуткие проблемы с GUI (связанно с миграцией на x64)
не было в 2012 миграции - там был 32-битный VBA 6 версии в подглючивающих 64-битных обертках) С 2014 акада перешли на 7 версию, где вроде как заявлены полноценные 64-битные функции. А в акад 2012х64 в VBA последней каплей стало - когда он стандартные функции типа строковых начал рандомно высвечивать как неизвестные. Так что поведению MsgBox не удивлен)
Сергей812 вне форума  
 
Автор темы   Непрочитано 19.10.2020, 13:50
#6
deaf red


 
Регистрация: 16.09.2020
Сообщений: 15


Цитата:
Сообщение от trir Посмотреть сообщение
не использовать AutoCAD 2012
Такой возможности пока нет. Т.е. решить эту проблему никак нельзя?
deaf red вне форума  
 
Непрочитано 19.10.2020, 13:51
#7
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 38,115


Можно Не использовать VBA Благо варианты есть
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.10.2020, 13:54
#8
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,274


насколько помню, в списке библиотек Tools -> References был компонент типа AcadFocusCtrl (не помню, как точно называется) - который как раз был призван решать проблему потери фокуса диалоговыми окнами VBA)

----- добавлено через ~2 мин. -----
т.е. приделать еще один костыль к программе, чтобы исправить костыль от VBA вызова диалоговых окон не в контексте самого приложения акад)
Сергей812 вне форума  
 
Непрочитано 19.10.2020, 14:06
#9
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 38,115


Ага, и программа начнет напоминать...
Миниатюры
Нажмите на изображение для увеличения
Название: Костыль на костыле.jpg
Просмотров: 79
Размер:	88.3 Кб
ID:	231150  
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.10.2020, 14:55
#10
trir


 
Регистрация: 18.12.2010
Сообщений: 4,511


Цитата:
там был 32-битный VBA 6 версии в подглючивающих 64-битных обертках
я это и имел в виду, в итоге перешёл на NET
trir вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Окно MsgBox не закрывается с первого клика по кнопке ОК. AutoCAD 2012.

Система Техэксперт дает уверенность в правильности и эффективности принимаемых инженерных решений!
Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Autocad 2012 загружается и исчезает Juss_00 AutoCAD 8 28.11.2017 10:28
При запуске AutoCAD главное окно не доступно (из-за окна "External Reference") sibedir AutoCAD 4 28.04.2015 09:55
как сделать чтобы чертеж по умолчанию открывался в версии 2009 Autocad, а не 2012? _olga_ AutoCAD 14 19.06.2013 18:48
Привязка внешней ссылки (файл civil 2012) к файлу autocad 2007 koca AutoCAD 1 26.05.2012 21:07
Запуск AutoCAD 2012, Inventor 2012 под пользователем DonVik AutoCAD 7 28.02.2012 01:57