Prolog
  • Введение
  • Установка и запуск
  • Примеры
  • Арифметика и вывод на экран
  • Циклы
  • Списки
  • База данных
  • Ввод данных
  • Файлы
  • Сравнение фактов
  • Взаимодействие с консолью
  • Оконный интерфейс
  • Рисование
  • Visual Prolog
Powered by GitBook
On this page
  • Задача 1
  • Задача 2

Was this helpful?

Оконный интерфейс

Задача 1

Создать окно с двумя полями ввода.

Пользователь вводит числа в поля ввода.

При нажатии на кнопку в консоли выводится сумма введённых чисел.

w :- new(
  Dialog, dialog("Find summa app")),
  send_list(Dialog, append,
  [
    new(A, text_item(your_number_a)),
    new(B, text_item(your_number_b)),
    button(cancel, message(Dialog, destroy)),
    button(enter, and(message(@prolog, myfunc, A?selection, B?selection)))
  ]),
send(Dialog, default_button, enter),
send(Dialog, open).

myfunc(A, B) :- atom_string(AA, A), atom_string(BB, B),
                atom_number(AA, X), atom_number(BB, Y),
                S is (X + Y),
                format('A: ~w   B: ~w   S: ~w ~n', [A, B, S]).

Запускаем программу.

w.

Задача 2

Создать окно с двумя полями ввода.

При нажатии на кнопку перед пользователем появляется всплывающее окно с суммой чисел.

true.


w :- new(
  Dialog, dialog("Find summa app")),
  send_list(Dialog, append,
  [
    new(A, text_item(your_number_a)),
    new(B, text_item(your_number_b)),
    button(cancel, message(Dialog, destroy)),
    button(enter, and(message(@prolog, myfunc, A?selection, B?selection)))
  ]),
send(Dialog, default_button, enter),
send(Dialog, open).



alert(M) :- new(
  Dialog, dialog("Message")),
  send_list(Dialog, append,
  [
    new(T, text(M, center)),
    button(ok, message(Dialog, destroy))
  ]),
send(Dialog, open).



myfunc(A, B) :- atom_string(AA, A), atom_string(BB, B),
                atom_number(AA, X), atom_number(BB, Y),
                S is (X + Y),
                nl,
                write("A: "), write(X), nl,
                write("B: "), write(Y), nl,
                write("S: "), write(S), nl,
                nl, 
                alert(S),
                true.

Запускаем программу.

w.
PreviousВзаимодействие с консольюNextРисование

Last updated 5 years ago

Was this helpful?