Главная / Программирование /
Разработка приложений на языке Visual Prolog / Тест 5
Разработка приложений на языке Visual Prolog - тест 5
Упражнение 1:
Номер 1
Определение обработчика событий выбора пункта меню File -> New главного окна приложения имеет вид:
onFileNew(_Source, _MenuTag):-
vpiCommonDialogs::note("Hello, World!"),
setText("Hello!").
Что произойдет после выбора команды меню File -> New?
Ответ:
 (1) Откроется окно Note, в строке заголовка которого будет выведен текст "Hello, World!", а в строке заголовка главного окна приложения будет выведен текст "Hello!" 
 (2) Откроется окно Note, в поле сообщений которого будет выведен текст "Hello, World!", при этом в строке заголовка главного окна приложения будет выведен текст "Hello!" 
 (3) Откроется окно Note, в поле сообщений которого будет выведен текст "Hello, World!", а после закрытия окна Note в строке заголовка главного окна приложения появится текст "Hello!" 
 (4) Откроется окно Note, в строке заголовка которого будет выведен текст "Hello!", а в поле сообщений — текст "Hello, World!". 
Номер 2
Определение обработчика событий выбора пункта меню File -> New главного окна приложения имеет вид:
onFileNew(_Source, _MenuTag):-
vpiCommonDialogs::note("Hello!"),
_ = drawForm::display(This),
setText("Hello, World!").
Пользователь выбрал команду меню File -> New. Где и когда появится текст "Hello, World!")?
Ответ:
 (1) Сразу в поле сообщений окна Note 
 (2) В строке заголовка главного окна приложения после закрытия окна Note 
 (3) В строке заголовка формы drawForm после закрытия окна Note 
 (4) Сразу в строке заголовка главного окна приложения 
Номер 3
Определение обработчика событий выбора пункта меню File -> New главного окна приложения имеет вид:
onFileNew(_Source, _MenuTag):-
vpiCommonDialogs::note("Hello, World!"),
Form = drawForm::display(This),
Form:setText("Hello!").
Пользователь выбрал команду меню File -> New, а потом закрыл окно Note. Где будет выведен текст "Hello!")?
Ответ:
 (1) Нигде, так как он был выведен в поле сообщений окна Note, которое уже закрыто 
 (2) В строке заголовка главного окна приложения 
 (3) В строке заголовка формы drawForm 
 (4) В текстовом поле формы drawForm, если оно там было создано. 
Упражнение 2:
Номер 1
Какой элемент будет выделен в списке в результате вызова последовательности подцелей
listbox_ctl:addList(["Anna", "Bob", "Chris", "David"]),
listbox_ctl:selectAt(3, true)?
Ответ:
 (1) Anna 
 (2) Bob 
 (3) Chris 
 (4) David 
Номер 2
Какой элемент будет выделен в списке в результате вызова последовательности подцелей
listbox_ctl:addList([toString(I) || I = std::fromTo(1, 5)]),
listbox_ctl:selectAt(1, true)?
Ответ:
 (1) 2 
 (2) 5 
 (3) 3 
 (4) 1 
Номер 3
Какой элемент будет выделен в списке в результате вызова последовательности подцелей
listbox_ctl:addList(["2", "4", "6", "8"]),
listbox_ctl:selectAt(2, true)?
Ответ:
 (1) 2 
 (2) 4 
 (3) 6 
 (4) 8 
Упражнение 3:
Номер 1
Текст Str появится в окне сообщений Messages в результате вызова подцели
Ответ:
 (1) edit_ctl:setText(Str) 
 (2) setText(Str) 
 (3) stdio::write(Str) 
 (4) setString(Str) 
Номер 2
Текст Str заменит текст, содержащийся в поле редактирования (Edit Control), в результате вызова подцели
Ответ:
 (1) edit_ctl:setText(Str) 
 (2) edit_ctl:text := Str 
 (3) stdio::write(Str) 
 (4) edit_ctl:write(Str) 
Номер 3
Текст Str будет удален из поля редактирования (Edit Control) в результате вызова подцели
Ответ:
 (1) edit_ctl:setText(Str) 
 (2) stdio::write("") 
 (3) edit_ctl:delete(Str) 
 (4) edit_ctl:setText("") 
Упражнение 4:
Номер 1
Какой элемент будет виден изначально в выпадающем списке после вызова подцели
listButton_ctl:addList(["Ann", "Bob", "Tom"])?
Ответ:
 (1) Ann 
 (2) Никакой, поле изначально будет выглядеть пустым. 
 (3) Bob 
 (4) Tom 
Номер 2
Какой элемент будет виден изначально в выпадающем списке после вызова подцели
listButton_ctl:addList(["Alpha", "Beta", "Gamma"]),
listButton_ctl:selectAt(0, true)?
Ответ:
 (1) Alpha 
 (2) Никакой, поле изначально будет выглядеть пустым. 
 (3) Beta 
 (4) Gamma 
Номер 2
Какой элемент будет виден изначально в выпадающем списке после вызова подцели
listButton_ctl:addList(["1", "3", "5"]),
listButton_ctl:selectAt(1, true)?
Ответ:
 (1) 1 
 (2) Никакой, поле изначально будет выглядеть пустым. 
 (3) 3 
 (4) 5 
Упражнение 5:
Номер 1
Окно drawForm должно открываться по нажатию кнопки Ok окна familyForm. В определении предиката onOkClick достаточно подставить подцель:
Ответ:
 (1) _ = drawFrom::new(getParent()) 
 (2) drawFrom::show() 
 (3) _ = drawFrom::display(getParent()) 
 (4) _ = drawFrom::display(This) 
Номер 2
Окно drawForm должно открываться при выборе команды главного меню File -> New. В определении предиката обработки события вызова этой команды меню достаточно поставить подцель:
Ответ:
 (1) _ = drawFrom::new(getParent()) 
 (2) drawFrom::show() 
 (3) _ = drawFrom::display(getParent()) 
 (4) _ = drawFrom::display(This) 
Номер 3
Окно drawForm должно открываться по нажатию кнопки Ok окна Note, которое открывается при выборе пункта главного меню File -> New. В определении предиката обработки события вызова этой команды меню достаточно поставить подцели:
Ответ:
 (1) vpiCommonDialogs::note("Open"), _ = drawFrom::new(getParent()) 
 (2) vpiCommonDialogs::note("Open"), drawFrom::show() 
 (3) vpiCommonDialogs::note("Open"), _ = drawFrom::display(getParent()) 
 (4) vpiCommonDialogs::note("Open"), _ = drawFrom::display(This) 
Упражнение 6:
Номер 1
Делает включенным переключатель radio_ctl вызов подцели:
Ответ:
 (1) radio_ctl:setRadioState(true) 
 (2) radio_ctl:setVisible(true) 
 (3) radio_ctl:setEnabled(true) 
 (4) radio_ctl:setRadioState(radioButton::checked) 
Номер 2
Переключатель radio_ctl делает выключенным вызов подцели:
Ответ:
 (1) radio_ctl:setRadioState(false) 
 (2) radio_ctl:setRadioState(radioButton::unchecked) 
 (3) radio_ctl:setEnabled(false) 
 (4) radio_ctl: setVisible(false) 
Номер 3
Переключатель radio_ctl делает неактивным вызов подцели:
Ответ:
 (1) radio_ctl:setRadioState(false) 
 (2) radio_ctl:setRadioState(radioButton::unchecked) 
 (3) radio_ctl:setEnabled(false) 
 (4) radio_ctl: setVisible(false) 
Упражнение 7:
Номер 1
Кнопку del_ctl делает невидимой вызов подцели:
Ответ:
 (1) del_ctl:setVisible(false) 
 (2) del_ctl:setEnabled(true) 
 (3) del_ctl:setEnabled(false) 
 (4) del_ctl:setVisible(true) 
Номер 2
Кнопку del_ctl делает видимой вызов подцели:
Ответ:
 (1) del_ctl:setVisible(false) 
 (2) del_ctl:setEnabled(true) 
 (3) del_ctl:setEnabled(false) 
 (4) del_ctl:setVisible(true) 
Номер 3
Кнопку del_ctl делает включенной вызов подцели:
Ответ:
 (1) del_ctl:setVisible(false) 
 (2) del_ctl:setEnabled(true) 
 (3) del_ctl:setEnabled(false) 
 (4) del_ctl:setVisible(true) 
Упражнение 8:
Номер 1
Текст Str помещает в текстовый редактор (sciLexer) вызов подцели:
Ответ:
 (1) sciLexer_ctl:concat(Str) 
 (2) sciLexer_ctl:text := Str 
 (3) sciLexer_ctl:append(Str) 
 (4) sciLexer_ctl:readOnly := Str 
Номер 2
Свойство "Только для чтения" устанавливает для текстового редактора (sciLexer) вызов подцели:
Ответ:
 (1) sciLexer_ctl:setText("true") 
 (2) sciLexer_ctl:text := true 
 (3) sciLexer_ctl:readOnly := false 
 (4) sciLexer_ctl:readOnly := true 
Номер 3
Что произойдет в текстовом редакторе (sciLexer) в результате вызова подцели:
sciLexer_ctl:text := "Hello, World!"?
Ответ:
 (1) В заголовке окна, в котором размещен текстовый редактор, появится строка "Hello, World!". 
 (2) Вместо старого текста, который был в текстовом редакторе, появится текст "Hello, World!". 
 (3) Текст "Hello, World!" будет добавлен в конец текста, который находился в текстовом редакторе. 
 (4) Текст "Hello, World!" будет добавлен в начало текста, который находился в текстовом редакторе.