Добро пожаловать во вторую часть нашего руководства по Monodevelop/MonoD! В этой статье мы займемся созданием нашего первого проекта на базе D Form Library 2 (DFL2). Если вы читаете это, значит, вы уже знаете основные принципы работы с Monodevelop и хотите сделать шаг вперед.
Что такое DFL2?
Перед тем как нырнуть в разработку, давайте разберемся, что такое DFL2. D Form Library 2 (DFL2) — это библиотека для создания графических интерфейсов пользователя (GUI) на языке программирования D. Она предоставляет множество инструментов и компонентов для создания оконных приложений, аналогично Windows Forms в .NET.
Создаем первый проект
Написание кода
Теперь перейдем к самому интересному — написанию кода! Откройте source/app.d
и замените его содержимое следующим:
import dfl2.all;
class MainForm : Form
{
this()
{
super("Моё первое приложение на DFL2");
this.size = Size(800, 600);
auto button = new Button();
button.text = "Нажми меня!";
button.location = Point(350, 250);
button.size = Size(100, 50);
button.click ~= &onButtonClick;
this.controls.add(button);
}
void onButtonClick(Object sender, EventArgs e)
{
MessageBox.show("Привет, мир!", "Сообщение");
}
}
void main()
{
Application.run(new MainForm());
}
Давайте разберем этот код.
- Импортируем DFL2:
import dfl2.all;
— это включает все модули DFL2. - Создаем форму:
class MainForm : Form
— создаем класс формы, наследующий отForm
. - Конструктор формы: В конструкторе формы задаем её заголовок, размеры и добавляем кнопку.
- Обработчик события: Метод
onButtonClick
вызывается при нажатии на кнопку и отображает сообщение. - Точка входа: В функции
main
запускаем приложение и создаем экземплярMainForm
.
Компиляция и запуск
Теперь скомпилируем и запустим наш проект. В Monodevelop нажмите «Build» и затем «Run». Если всё сделано правильно, вы увидите окно с кнопкой «Нажми меня!». При нажатии на кнопку должно появиться сообщение «Привет, мир!».
Глубже в DFL2
Теперь, когда у нас есть базовый проект, давайте добавим в него больше функциональности и рассмотрим некоторые полезные компоненты DFL2.
Добавляем текстовое поле и метку
Расширим наш пример, добавив текстовое поле и метку. Обновите конструктор класса MainForm
следующим образом:
class MainForm : Form
{
TextBox input;
Label label;
this()
{
super("Моё первое приложение на DFL2");
this.size = Size(800, 600);
auto button = new Button();
button.text = "Нажми меня!";
button.location = Point(350, 250);
button.size = Size(100, 50);
button.click ~= &onButtonClick;
input = new TextBox();
input.location = Point(300, 200);
input.size = Size(200, 30);
label = new Label();
label.text = "Введите текст:";
label.location = Point(200, 200);
label.size = Size(100, 30);
this.controls.add(button);
this.controls.add(input);
this.controls.add(label);
}
void onButtonClick(Object sender, EventArgs e)
{
string userInput = input.text;
MessageBox.show("Вы ввели: " ~ userInput, "Сообщение");
}
}
Пояснение к новому коду
- TextBox и Label: Добавляем текстовое поле и метку к форме.
- Расположение компонентов: Указываем координаты и размеры для новых элементов.
- Обновленный обработчик: В обработчике нажатия на кнопку считываем текст из текстового поля и отображаем его в сообщении.
Работа с Layout
DFL2 предоставляет возможности для работы с Layout, что позволяет более гибко управлять расположением компонентов. Давайте добавим пример с использованием FlowLayoutPanel
:
class MainForm : Form
{
FlowLayoutPanel panel;
this()
{
super("Моё первое приложение на DFL2");
this.size = Size(800, 600);
panel = new FlowLayoutPanel();
panel.dock = DockStyle.fill;
auto button = new Button();
button.text = "Нажми меня!";
button.size = Size(100, 50);
button.click ~= &onButtonClick;
input = new TextBox();
input.size = Size(200, 30);
label = new Label();
label.text = "Введите текст:";
label.size = Size(100, 30);
panel.controls.add(label);
panel.controls.add(input);
panel.controls.add(button);
this.controls.add(panel);
}
void onButtonClick(Object sender, EventArgs e)
{
string userInput = input.text;
MessageBox.show("Вы ввели: " ~ userInput, "Сообщение");
}
}
Пояснение к коду с Layout
- FlowLayoutPanel: Создаем панель с поточным расположением и добавляем в неё элементы.
- Docking: Используем свойство
dock
, чтобы панель заполнила все окно формы.
Мы прошли длинный путь от создания базового проекта до работы с текстовыми полями и Layout в DFL2. Теперь у вас есть все необходимое, чтобы создавать собственные оконные приложения на языке D с использованием DFL2. Экспериментируйте, добавляйте новые компоненты и функции, и не бойтесь пробовать что-то новое.
Автор статьи:
Обновлено:
Добавить комментарий