Может ли программа вставлять текст в окно ввода текста, окна созданного в менеджере диалоговых окон - Lisp
Формулировка задачи:
модератор закрыл тему "лисп системы для новичков", не пожелав всё таки удалять лишнее. тогда я открываю такую тему. вопросы к разработчику, не знаю пожелает ли он отвечать тут на них. дело в том, что первой которую я решил написать, будет прога переводчик, но пока что для языка Lisp, точнее она будет не переводить, а помогать осваивать. а вопросы к автору такие: может ли программа вставлять текст в окно ввода текста, окна созданного в менеджере диалоговых окон? можно ли текст выпадающего списка или списка, формировать по ходу выполнения программы. или в каком из типов списка можно реализовать это в вашей среде? если это вообще можно реализовать в какой-либо среде. я не делаю рекламу, я пытаюсь освоить язык программирования, многим мб это не нравится, но, уж извините. со средой, любой, не так просто разобраться, как и со всем, имеющим техническую документацию.
кстати работают там только выпадающие списки, в этой среде
так переименовать тему-конечно некрасиво, тупая тема стала. чёт беспредел получается. вопрос был конкретно по Home Lisp среде. Ну что ж.
Решение задачи: «Может ли программа вставлять текст в окно ввода текста, окна созданного в менеджере диалоговых окон»
textual
Листинг программы
(prog nil (try (dlgDestroy '_Dlg_) except Nil) (dlgCreate '_Dlg_ 221 243 "" &H8000000F) (dlgAddControl '_Dlg_ '_CMB_1 _COMBO 18 14 181 24 '("MS Sans Serif" 8 0 0 0) &H80000012 &H80000009) (dlgAddControl '_Dlg_ '_BUT_1 _BUTTON 20 138 180 56 '("Tahoma" 8.25 1 0 0) "Закрыть") (dlgAddControl '_Dlg_ '_BUT_2 _BUTTON 21 69 177 60 '("Tahoma" 8.25 1 0 0) "Заменить список") ;; ;; Пролог загрузки диалога _DLG_ ;; (Prog () (dlgPutList '_CMB_1 ;; идентификатор контрола (LIST или COMBO) '("Первый" "Второй" "Третий") ) ) ;; ;; Обработчик события CLICK для кнопки _BUT_1 ;; (defun _BUT_1_Click Nil (dlgHide '_dlg_) (dlgDestroy '_dlg_) (say "Пока!") ) ;; ;; Назначение процедуры-события _BUT_1_Click контролу _BUT_1 ;; (dlgSetEvent '_BUT_1 '_BUT_1_Click ) ;; ;; Обработчик события CLICK для кнопки _BUT_2 ;; (defun _BUT_2_Click Nil (dlgPutList '_CMB_1 ;; идентификатор контрола (LIST или COMBO) '("1" "2" "3" "4" "5" "6" "7") ) ) ;; ;; Назначение процедуры-события _BUT_2_Click контролу _BUT_2 ;; (dlgSetEvent '_BUT_2 '_BUT_2_Click ) ;; ;; Отображение диалога _Dlg_ ;; (dlgShow '_Dlg_) )
Объяснение кода листинга программы
- Программа создает диалоговое окно с помощью функции
dlgCreate
. - Затем программа добавляет два элемента управления в диалоговое окно: один выпадающий список с помощью функции
dlgAddControl
, и одну кнопку с помощью функцииdlgAddControl
. - Программа затем отображает диалоговое окно с помощью функции
dlgShow
. - Если пользователь нажимает кнопку
Закрыть
, программа вызывает функциюdlgHide
, чтобы скрыть диалоговое окно, и функциюdlgDestroy
, чтобы уничтожить его. - Если пользователь нажимает кнопку
Заменить список
, программа вызывает функциюdlgPutList
, чтобы изменить список в выпадающем списке. - Программа также устанавливает обработчик событий для каждой кнопки с помощью функции
dlgSetEvent
. Обработчик событий для кнопкиЗакрыть
скрывает и уничтожает диалоговое окно, а обработчик событий для кнопкиЗаменить список
изменяет список в выпадающем списке. - В конце программы функция
dlgShow
используется снова, чтобы отобразить диалоговое окно.