ISSN 1991-3087

Свидетельство о регистрации СМИ: ПИ № ФС77-24978 от 05.07.2006 г.

ISSN 1991-3087

Подписной индекс №42457

Периодичность - 1 раз в месяц.

Вид обложки

Адрес редакции: 305008, г.Курск, Бурцевский проезд, д.7.

Тел.: 8-910-740-44-28

E-mail: jurnal@jurnal.org

Рейтинг@Mail.ru Rambler's Top100
Яндекс.Метрика

Разработка простых интерфейсов с использованием библиотеки WinForms

 

Лопатин Дмитрий Константинович,

студент Приамурского государственного университета им. Шолом-Алейхема.

 

В настоящий момент графический интерфейс является неотъемлемой частью программных систем. От него зависит удобство работы пользователя, как будет продвигаться программный продукт на рынке, какое впечатление будет создавать представляемый продукт. Поэтому и уделяется сейчас большое внимание разработчиков к юзабилити.

В системе программирования MS Visual Studio для языка F# не предусмотрен визуальный редактор форм и перед разработчиками возникают проблемы разработки интерфейса [5]. Была поставлена задача предоставить несколько простых решений на основе встроенной в F# библиотеки WinForms для проектирования графической оболочки приложений.

Опишем несколько литературных источников, показывающие возможности библиотеки WinForms.

Авторы Д.Сайм, А.Гранич, А.Цистернино в [6] представляют как разработать графическое приложение в F# с использованием WinForms. Библиотека представляет собой графический инструментарий, разработанный Microsoft для реализации графических приложений на платформе NET. Эта библиотека использует интерфейс GDI+, который используется для разработки приложений на Windows. Описание примеров начато с создания традиционного приложения «Hello, World!» которое представляет собой форму с кнопкой, чтобы отобразить фразу при нажатии. Авторы описывают составление пользовательских интерфейсов и показывают, как разработать простой веб-браузер. Авторами рассмотрено создание приложения для просмотра фракталов Мандельброта, а так же настройки цветовых гамм.

Д.Харроп [4] рассматривает работу с библиотекой WinForms в главе под названием «Визуализация». В этой книге поверхностно описана библиотека WinForms. Автор книги объясняет создание форм, элементов управления, возможность добавления событий элементам управления. Д.Харроп рассказывает о возможности отображения растровых изображений с использованием библиотеки Windows Forms и приводит пример клеточного автомата.

Т.Петричек и Д.Скит [7] подробно рассматривают примеры использующие библиотеку WinForms. Авторы описывают, как рисовать круговые диаграммы, разрабатывать приложения для просмотра изображений и пользовательского интерфейса для него. Есть пример генерации цветовых градиентов.

Ан.Б.Шамшев, Воронина В.В., Р.И.Баженов [2, 3] описывают методические подходы к проектированию интерфейсов на основе библиотеки WinForms на языке программирования F#. В [1] представлен графический интерфейс в информационной системе к разнородным данным.

Опишем решение поставленной задачи.

Для использования библиотеки WinForms при разработке приложений на F# требуются понимать следующие положения: каждое окно на экране – это экземпляр класса Form, содержащий коллекцию элементов управления пользовательского интерфейса типа Control; в процессе взаимодействия пользователей с элементами формы происходят события, которые могут обрабатываться программой;      Windows Forms – библиотека, представляющая объектно-ориентированную обертку вокруг Windows API.

Приведем фрагменты кода создания главной формы, на которой разместим меню, три рисунка и надпись (рис. 1).

 

Рис. 1. Вид главной формы.

 

let form = new Form(Width= 400, Height = 300, Text = "F# Главная форма", Menu = new MainMenu())

// Меню бар

let mFile = form.Menu.MenuItems.Add("&Файл")

// Под меню

let miMessage = new MenuItem("&Пример сообщения")

// Добавление подменю в пункты меню

mFile.MenuItems.Add(miMessage)

// Создаем картинки и задаем им свойства

let image1 = new PictureBox(SizeMode = PictureBoxSizeMode.AutoSize, Top = 5)

// Указываем местоположение картинок

image1.ImageLocation <- "1.PNG"

// Добавляем картинки на форму

form.Controls.Add(image1)

// Создаём и добавляем надпись на форму

let Label1 = new Label(Text="Пример вывода изображений на экран", Top=150)

Label1.Width <- form.Width

Label1.Left <- 80

form.Controls.Add(Label1)

// Запускаем форму

do Application.Run(form)

 

Покажем пример создания ещё трех дополнительных форм и организации перехода через меню (рис. 2).

 

Рис. 2. Дополнительные формы.

 

//Форма_1

let Form1 = new Form(Text = "Дочерняя форма №1" ,Width = 400, Height = 300)

let Edit1 = new TextBox(Text="10")

Form1.Controls.Add(Edit1)

let Summ _ = MessageBox.Show(string(int(Edit1.Text)+(int(Edit2.Text))), "Сумма") |>ignore

let _ = button1.Click.Add(Summ)

//Форма_2

let Form2 = new Form(Width= 400, Height = 300, Text = "Дочерняя форма №2")

let ProgressBar1 = new ProgressBar(Dock=DockStyle.Top)

Form2.Controls.Add(ProgressBar1)

let Change _ = ProgressBar1.Value <- ScrollBar1.Value

//Форма_3

let Form3 = new Form(Text = "Дочерняя форма №3" ,Width = 400, Height = 300)

let Cal = new MonthCalendar()

Form3.Controls.Add(Cal)

let MsgDay _ = MessageBox.Show ("Сегодня "+string DateTime.Today.Now, "Дата") |>ignore

let _ = Button2.Click.Add(MsgDay)

//Вызов форм

let opForm1 _ = do Form1.ShowDialog()

let _ = miForm1.Click.Add(opForm1)

 

Таким образом, можно заметить, что разработка пользовательского интерфейса с помощью библиотеки WinForms в языке программирования F# не представляет большой сложности. Предложенные автором алгоритмы были использованы студентами направления «Информационные системы и технологии» для разработки графических оболочек в курсовых и выпускных квалификационных работах.

 

Литература

 

1.                  Баженов Р.И., Гринкруг Л.С. Информационная система по расчету и распределению нагрузки профессорско-преподавательского состава ФГБОУ ВПО «Приамурский государственный университет им. Шолом-Алейхема» // Информатизация и связь. - 2012. - № 5. - С. 75-78.

2.                  Функциональное и логическое программирование. Курсовая работа: Методические рекомендации для студентов специальности «230105.65 Программное обеспечение вычислительной техники и автоматизированных систем» и направления «230100.62 Информатика и вычислительная техника» / Р.И.Баженов. – Биробиджан: ФГБОУ ВПО «ДВГСГА», 2012. – 27 с.

3.                  Шамшев Ан.Б., Воронина В.В. Функциональное программирование на языке F# : учебное пособие. – Ульяновск: УлГТУ, 2012. – 165 с.

4.                  Harrop J. F# for Scientists. – Wiley, 2008. – 334 p.

5.                  Smith C. Programming F#. – O’Reilly, 2010. – 384 p.

6.                  Syme D., Granicz A., Cisternio A. Expert F#. – A-Press, 2007. – 609 p.

7.                  Petricek T, Skeet J. Functional programming for the Real World with examples for F# and C#. – Manning, 2007. – 495 p.

 

Поступила в редакцию 24.03.2014 г.

2006-2018 © Журнал научных публикаций аспирантов и докторантов.
Все материалы, размещенные на данном сайте, охраняются авторским правом. При использовании материалов сайта активная ссылка на первоисточник обязательна.