Хорошо!
Это довольно простая проблема, но я собираюсь уделить секунду, чтобы объяснить, что происходит.
В DOORS есть 2 способа завершить диалоговое окнои отобразите его пользователю:
show(DB box)
или
block(DB box)
Первый отображает диалоговое окно, но остальная часть интерфейса DOORS все еще «активна».Никакой код после 'show' не будет выполнен - все должно быть в обратных вызовах, встроенных в диалоговое окно.
Второй отображает диалоговое окно, но останавливает остальную часть интерфейса DOORS, пока диалоговое окно не будетзакрыт или вызывается функция разблокировки.Как только вы закроете диалоговое окно, программа DXL продолжит работу.
Теперь в вашей программе вы использовали команду «реализовать».Это используется для основной настройки визуальных элементов диалогового окна, но на самом деле неправильно настраивает кнопки и подфункции.Затем пришел ваш setSize и установил диалоговое окно для отображения, но вам все еще нужно шоу - см. Следующее.
//Show example
pragma runLim,10000
DB main_dialog = null
DBE main_button1 = null
DBE main_button2 = null
void toggle_visibility_other_button(DBE dbe)
{
active(main_button2)
}
void do_something(DBE dbe)
{
infoBox "UNDER CONSTRUCTION"
}
void main_function()
{
main_dialog = create("My GUI", styleCentered)
main_button1 = button(main_dialog, "Button 1", toggle_visibility_other_button)
main_button2 = button(main_dialog, "Button 2", do_something)
inactive(main_button2)
realize(main_dialog)
setSize(main_dialog, 300, 150)
// Added This
show(main_dialog)
print "Ran it!"
}
main_function
И пример блока:
//block example
pragma runLim,10000
DB main_dialog = null
DBE main_button1 = null
DBE main_button2 = null
void toggle_visibility_other_button(DBE dbe)
{
active(main_button2)
}
void do_something(DBE dbe)
{
infoBox "UNDER CONSTRUCTION"
}
void main_function()
{
main_dialog = create("My GUI", styleCentered)
main_button1 = button(main_dialog, "Button 1", toggle_visibility_other_button)
main_button2 = button(main_dialog, "Button 2", do_something)
inactive(main_button2)
realize(main_dialog)
setSize(main_dialog, 300, 150)
// Added This
block(main_dialog)
print "Ran it!"
}
main_function
Естьнекоторые функции DOORS, которые потребуют, чтобы вы выполнили функцию реализа () для настройки элементов диалогового окна (до вызова show () или блока ()) - например, добавление столбцов в DBE просмотра списка.Я не уверен, что когда-либо видел полный список таких ситуаций.
Дайте мне знать, если это поможет!