Может ли программа вставлять текст в окно ввода текста, окна созданного в менеджере диалоговых окон - 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_)
)

Объяснение кода листинга программы

  1. Программа создает диалоговое окно с помощью функции dlgCreate.
  2. Затем программа добавляет два элемента управления в диалоговое окно: один выпадающий список с помощью функции dlgAddControl, и одну кнопку с помощью функции dlgAddControl.
  3. Программа затем отображает диалоговое окно с помощью функции dlgShow.
  4. Если пользователь нажимает кнопку Закрыть, программа вызывает функцию dlgHide, чтобы скрыть диалоговое окно, и функцию dlgDestroy, чтобы уничтожить его.
  5. Если пользователь нажимает кнопку Заменить список, программа вызывает функцию dlgPutList, чтобы изменить список в выпадающем списке.
  6. Программа также устанавливает обработчик событий для каждой кнопки с помощью функции dlgSetEvent. Обработчик событий для кнопки Закрыть скрывает и уничтожает диалоговое окно, а обработчик событий для кнопки Заменить список изменяет список в выпадающем списке.
  7. В конце программы функция dlgShow используется снова, чтобы отобразить диалоговое окно.

Оцени полезность:

9   голосов , оценка 4.222 из 5
Похожие ответы