Простейшие Genie-приложения
Genie-приложения на примере вычисления логарифма
Введение
В данном примере представлены простейшие интерактивные приложения для вычисления логарифмов:
Где:
- — основание логарифма
- — аргумент логарифма
- — значение логарифма.
То есть выполняется условие:
Реактивный интерфейс
Рассмотрим скрипт приложения с реактивным интерфейсом.
using GenieFramework, Stipple
@genietools
@app begin
@in x = 2.0
@in y = 8.0
@out a = 3.0
@onchange x, y begin
a = log(x, y)
end
end
function ui()
row([column([ textfield("Основание:", :x, type="number", min=0),
textfield("Число:", :y, type="number", min=0),
textfield("Значение логарифма:", :a, readonly=true) ])])
end
@page("/", ui)
Запустим приложение.
genie_app1 = engee.genie.start("$(@__DIR__)/log_app1.jl")
display("text/html", """<a href="$(string(genie_app1.url))" target="_blank">Открыть в новой вкладке</a>""")
Пользователю достаточно ввести в первую строку основание, а во вторую аргумент логарифма. Вычисление значение логарифма происходит автоматически после ввода исходных данных.
Запуск с кнопки
Рассмотрим скрипт приложения, вычисления в котором происходят с кликом кнопки.
using GenieFramework, Stipple
@genietools
@app begin
@in x = 2.0
@in y = 8.0
@in кнопка = false
@out a = 3.0
@onchange кнопка begin
if кнопка
a = log(x, y)
кнопка = false
end
end
end
function ui()
row([ column([ textfield("Основание:", :x, type="number", min=0),
textfield("Число:", :y, type="number", min=0),
textfield("Значение логарифма:", :a, readonly=true),
btn("Вычислить", @click(:кнопка)) ])])
end
@page("/", ui)
Запустим приложение.
genie_app2 = engee.genie.start("$(@__DIR__)/log_app2.jl")
display("text/html", """<a href="$(string(genie_app2.url))" target="_blank">Открыть в новой вкладке</a>""")
Как и в предыдущем приложении, пользователю необходимо ввести исходные данные в первые две строки. Однако здесь вычисление происходит после нажатия кнопки "Вычислить".
Остановим приложения.
engee.genie.stop("$(@__DIR__)/log_app1.jl");
engee.genie.stop("$(@__DIR__)/log_app2.jl");
Заключение
Представленные примеры наглядно демонстрируют гибкость Genie при создании интерактивных инструментов. От реактивного мгновенного просчёта до классического управления с помощью кнопки. Этот подход открывает широкие возможности для быстрого прототипирования инженерных калькуляторов, образовательных виджетов и корпоративных утилит прямо в среде Engee. Вы можете использовать представленные приложения как основу для ваших будущих проектов.