- •1. Вводная часть
- •2. Знакомство со средой разработки на примере создания простого консольного приложения
- •3. Модификация консольного приложения
- •4. Публикация
- •5. О приложении к Лабораторной работе № 1
- •Лабораторная работа № 2: Создание простого приложения Windows Forms
- •Создание простого приложения Windows Forms
- •Модификация приложения Windows Forms
- •Завершающая часть
- •2. Создание простого приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Завершающая часть
- •5. О приложении к Лабораторной работе № 2
- •3. Лабораторная работа № 3: Windows Forms и использование некоторых элементов управления Лабораторная работа № 3: Windows Forms и использование некоторых элементов управления
- •Вводная часть
- •О приложении к Лабораторной работе № 3
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: элемент управления MenuStrip
- •5. Модификация приложения Windows Forms: элемент управления Button
- •6. Модификация приложения Windows Forms: элемент управления ToolTip
- •7. Модификация приложения Windows Forms: элемент управления ComboBox
- •8. Модификация приложения Windows Forms: элемент управления WebBrowser
- •9. Модификация приложения Windows Forms: добавляем исходный код
- •10. Завершающая часть
- •11. О приложение к Лабораторной работе № 3
- •4. Лабораторная работа № 4: Windows Forms — работа с формами Лабораторная работа № 4: Windows Forms — работа с формами
- •Вводная часть
- •О приложении к Лабораторной работе № 4
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: добавление новой формы
- •5. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через прямой доступ к элементу формы
- •6. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через передачу метода в конструктор формы
- •7. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через класс делегата
- •8. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через свойства
- •9. Завершающая часть
- •10. О приложении к Лабораторной работе № 4
- •5. Лабораторная работа № 5: Windows Forms — элементы управления Лабораторная работа № 5: Windows Forms — элементы управления
- •Вводная часть
- •О приложении к Лабораторной работе № 5
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: динамическое добавление и уничтожение элемента управления
- •5. Модификация приложения Windows Forms: стандартные диалоговые окна
- •6. Модификация приложения Windows Forms: открытие файла, сохранение файла и работа с текстом
- •7. Модификация приложения Windows Forms: прочее
- •8. Завершающая часть
- •9. О приложении к Лабораторной работе № 5
- •Лабораторная работа № 6: SolidWorks — работа с SolidWorks
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: eDrawings 2012
- •4. Модификация приложения Windows Forms: организация работы с SolidWorks через приложение
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 6
- •Лабораторная работа № 7: SolidWorks — использование SwCSharpAddin, работа с макросом и шаблоном детали
- •2. Создание приложения SwCSharpAddin
- •3. Модификация приложения SwCSharpAddin: макрос отрисовки болта
- •4. Модификация приложения SwCSharpAddin: построение через шаблон детали
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 7
- •8. Лабораторная работа № 8: Создание простого приложения Windows Foundation Presentation Лабораторная работа № 8: Создание простого приложения Windows Foundation Presentation
- •Вводная часть
- •О приложении к Лабораторной работе № 8
- •1. Вводная часть
- •2. Создание приложения Windows Foundation Presentation
- •3. Модификация приложения Windows Foundation Presentation
- •4. Модификация приложения Windows Foundation Presentation: добавление нового элемента из библиотеки компонентов wpf
- •5. Модификация приложения Windows Forms: расширение функциональности приложения и работа с оформление
- •6. Модификация приложения Windows Foundation Presentation: различные возможности wpf
- •7. Модификация приложения Windows Foundation Presentation: немного о стилях и шаблонах
- •8. Завершающая часть
- •9. О приложении к Лабораторной работе № 8
- •Лабораторная работа № 9: Создание приложения-презентации Windows Foundation Presentation
- •2. Создание приложения Windows Foundation Presentation
- •3. Модификация приложения Windows Foundation Presentation
- •4. Модификация приложения Windows Foundation Presentation: работа с решением в Expression Blend
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 9
- •Лабораторная работа № 10: Работа с базами данных — xml и ole
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: odbc
- •4. Модификация приложения Windows Forms: ole
- •5. Модификация приложения Windows Forms: xml
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 10
- •Лабораторная работа № 11: Динамическая связь приложений через библиотеку классов
- •2. Удалённый объект: создание библиотеки классов удалённого объекта
- •3. Клиент: создание приложения Windows Forms
- •4. Сервер: создание консольного приложения
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 11
- •Лабораторная работа № 12: Автоматизация Microsoft Office Word
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: создание и заполнение нового документа Microsoft Word
- •4. Модификация приложения Windows Forms: работа с шаблонами
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 12
- •Лабораторная работа № 13: Автоматизация Microsoft Office Excel
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: создание и заполнение нового документа Microsoft Excel
- •4. Модификация приложения Windows Forms: чтение данных с документа Microsoft Excel
- •5. Модификация приложения Windows Forms: прочие возможности Microsoft Excel
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 13
- •Лабораторная работа № 14: Простой растровый редактор
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: подготовка интерфейса редактора
- •4. Модификация приложения Windows Forms: функциональность растрового редактора
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 14
- •15. Лабораторная работа № 15: Векторный редактор изображений Лабораторная работа № 15: Векторный редактор изображений
- •Вводная часть
- •О приложении к Лабораторной работе № 15
- •1. Вводная часть
- •2. Создание решения, приложения Windows Forms и библиотеки классов
- •3. Модификация приложения Windows Forms: подготовка интерфейса редактора и добавление файлов ресурсов
- •4. О будущей функциональности векторного редактора изображений
- •5. Модификация приложения Windows Forms: подготовка библиотеки классов
- •6. Модификация приложения Windows Forms: функциональность векторного редактора
- •7. Завершающая часть
- •8. О приложении к Лабораторной работе № 15
- •Лабораторная работа № 16: Windows Communication Foundation
- •2. Создание приложения wcf:
- •3. Модификация приложения wcf: приложение-клиент для wcf-службы
- •4. Создание приложения Windows Forms: сервер чата на wcf
- •5. Создание приложения Windows Forms: клиент чата на wcf
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 16
- •Лабораторная работа № 17: Знакомство с Silverlight
- •2. Создание приложения Silverlight:
- •3. Модификация приложения Silverlight: первые шаги и полноэкранный режим
- •4. Модификация приложения Silverlight: простой проигрыватель mp3-файлов
- •5. Модификация приложения Silverlight: работа с анимацией
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 17
- •Лабораторная работа № 18: Знакомство с asp.Net
- •2. Создание веб-приложения asp.Net
- •3. Модификация веб-приложения asp.Net: реализация различной функциональности
- •4. Модификация веб-приложения asp.Net: ajax
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 18
- •Вводная часть
- •О приложении к Лабораторной работе № 19
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: подготовка интерфейса и добавление TabControl
- •4. Модификация приложения Windows Forms: вкладка «Просто фон!»
- •5. Модификация приложения Windows Forms: вкладка «Объекты и градиент»
- •6. Модификация приложения Windows Forms: вкладка «Мой монитор сломался!»
- •7. Модификация приложения Windows Forms: вкладка «Векторные часы»
- •8. Модификация приложения Windows Forms: вкладка «Огонь!!!»
- •9. Модификация приложения Windows Forms: вкладка «Дождик»
- •10. Завершающая часть
- •11. О приложении к Лабораторной работе № 19
- •Лабораторная работа № 20: Inventor — работа с Inventor
- •Вводная часть
- •О приложении к Лабораторной работе № 20
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: запуск и завершение приложения Inventor
- •4. Модификация приложения Windows Forms: создание новых документов
- •5. Модификация приложения Windows Forms: доступ к элементам документов Inventor
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 20
- •Лабораторная работа № 21: Знакомство с языком f# (Эф-шарп) на примере простого приложения для командной строки
- •Вводная часть
- •О приложении к Лабораторной работе № 21
- •1. Вводная часть
- •2. Основные положения при работе с f#
- •3. Создание приложения «Учебник по f#»
- •4. Создание консольного приложения
- •5. О приложении к Лабораторной работе № 21
- •Лабораторная работа № 22: Различные примеры на f#
- •2. Создание приложения «Приложение f#»
- •3. Модификация приложения f#: match
- •4. Модификация приложения f#: создание форм и рисование объектов на форме
- •5. Модификация приложения f#: работа с базой данных Microsoft Access
- •6. О приложении к Лабораторной работе № 22
- •23. Дополнительная лабораторная работа № 1
- •24. Дополнительная лабораторная работа № 2
- •25. Дополнительная лабораторная работа № 3
- •Вводная часть
- •1. Вводная часть
- •2. Создание приложения Windows Foundation Presentation
- •3. Модификация приложения Windows Foundation Presentation: добавление ресурсов
- •4. Модификация приложения Windows Foundation Presentation: добавление исходного кода
- •5. Модификация приложения Windows Foundation Presentation: оформление элемента ListBox
- •6. Завершающая часть
- •7. О приложении к данной работе
4. Модификация приложения f#: создание форм и рисование объектов на форме
F# является .NET-языком и ему доступно всё то что можно реализовать и на C#. Например, попробуем поработать с графикой GDI+.
Следующий блок кода будет создавать простую форму Windows Forms и рисовать в ней два объекта. Для выхода с формы будет предусмотрена одна кнопка «Выход» (приложение не будет закрыто).
// Создание формы Windows Forms: Рисование объектов на форме
Console.Title <- "Различные примеры (F#) :: Рисование объектов на форме"
open System.Collections.Generic
open System.Windows.Forms
open System.ComponentModel
open System.Drawing
let graphicForm = new Form(Text = "Различные примеры (F#) :: Рисование объектов на форме", AutoScaleDimensions = new System.Drawing.SizeF(60.0F, 13.0F), ClientSize = new System.Drawing.Size(500, 200), StartPosition = FormStartPosition.CenterScreen)
// Создаём элементы управления
let exitButton = new Button(Text = "Выход", Location = new System.Drawing.Point(415, 167), Size = new Size(75, 23))
// Событие нажатия на кнопку "Выход"
exitButton.Click.Add(fun quit -> graphicForm.Close())
// Событие прорисовки элементов формы
graphicForm.Paint.Add(fun draw ->
let array = [|new Point(100, 150);new Point(250, 10);new Point(400, 150)|]
// Перо рисования (цвет: синий, толщина 10 пикселей)
let pen = new Pen(Color.Blue, Width = 10.0f)
// Создаём заливку
let brush = new SolidBrush(Color.LightGreen)
// Рисуем треугольник на основе массива точек
draw.Graphics.DrawPolygon(pen, array)
// Заполняем треугольник
draw.Graphics.FillPolygon(brush, array)
// Рисуем эллипс
draw.Graphics.DrawEllipse(pen, 10.0f, 10.0f, 100.0f, 100.0f)
// Заполняем эллипс
draw.Graphics.FillEllipse(brush, 10.0f, 10.0f, 100.0f, 100.0f))
// Добавляем на форму кнопку "Выход"
graphicForm.Controls.Add(exitButton)
// Запускаем новую форму
Application.Run(graphicForm)
printfn "\t\t\tНажмите клавишу Enter для продолжения..."
Console.ReadKey()
Console.Clear()
Компилируем приложение (Debug) и запускаем. Как только доберёмся до этой итерации в приложении, увидим открывшуюся форму и два нарисованных на форме объекта. Для выхода с формы жмём кнопку «Выход»:
Рис. 4. 1. Результат работы приложения F#: форма «Рисование объектов на форме»
Следующий пример немного содержательнее. На форме будут создано три кнопки. «Выход», «Загрузить» и «Печать». Вторая кнопка: вызывает стандартный диалог открытия файлов (изображений двух типов: JPEG и GIF). После выбора файла, изображения, оно будет отмасштабировано и помещено в PictureBox на форме. Нажатие на кнопку «Печать» отправит рисунок печататься на первом же возможном принтере (если тот подключен к ПК). Также, если на ПК установлено Microsoft Office 2010 и OneNote 2010 в комплекте с «офисом», нажатие кнопки «Печать» вызовет это приложение. Также, код изменяет курсор на форме на один из стандартных (крест), но можно использовать и свой (закомментированный код). Весь код такой:
// Создание формы Windows Forms: Печать выбранного рисунка
Console.Title <- "Различные примеры (F#) :: Печать выбранного рисунка"
open System.Drawing.Printing
open System.Drawing.Imaging
let imageForm = new Form(Text = "Различные примеры (F#) :: Печать выбранного рисунка", AutoScaleDimensions = new System.Drawing.SizeF(60.0F, 13.0F), ClientSize = new System.Drawing.Size(500, 250), StartPosition = FormStartPosition.CenterScreen)
// Создаём элементы управления
let exitButton2 = new Button(Text = "Выход", Location=new System.Drawing.Point(400, 210))
let loadButton2 = new Button(Text = "Загрузить", Location=new System.Drawing.Point(320, 210))
let printButton2 = new Button(Text = "Печать", Location=new System.Drawing.Point(240, 210))
let pictueBox2 = new PictureBox(SizeMode = PictureBoxSizeMode.StretchImage, Location = new System.Drawing.Point(20, 20), BorderStyle = BorderStyle.FixedSingle, Size = new System.Drawing.Size(100, 100))
let label2 = new Label(AutoSize = true, Location = new System.Drawing.Point(0, 120))
let openFileDialog2 = new OpenFileDialog()
let draw2 = imageForm.CreateGraphics()
let printDocument2 = new System.Drawing.Printing.PrintDocument()
imageForm.Controls.Add(pictueBox2)
imageForm.Controls.Add(loadButton2)
imageForm.Controls.Add(label2)
imageForm.Controls.Add(printButton2)
imageForm.Controls.Add(exitButton2)
// События нажатия кнопок
printButton2.Click.Add(fun startprint2 -> printDocument2.Print())
loadButton2.Click.Add(fun load2 ->
openFileDialog2.Filter <- "Изображения JPEG (*.jpg,*.jpeg)|*.jpg;*.jpeg|Изображения GIF (*.gif)|*.gif"
openFileDialog2.Title <- "Различные примеры (F#) :: Выбор файла изображения"
if (openFileDialog2.ShowDialog() = DialogResult.OK) then
// Создаём растровый рисунок и снимаем поворот и отражение (если есть)
let bitmap2 = new System.Drawing.Bitmap(openFileDialog2.FileName)
bitmap2.RotateFlip(RotateFlipType.RotateNoneFlipNone)
// Помещаем выбранное изображение в PictureBox
pictueBox2.Image <- bitmap2
// Отображаем в Label асболютный путь до изображения
label2.Text <- "\tИмя файла изображения:\n" + Convert.ToString(Convert.ToChar(32)) + (openFileDialog2.FileName))
// Вызываем страницу печати
printDocument2.PrintPage.Add(fun printData2 -> draw2.DrawImage(pictueBox2.Image, 10, 10))
exitButton2.Click.Add(fun quit2 -> imageForm.Close())
// Создание своего курсора (добавленного как ресурс в корень проекта)
// let customCursor2 = new System.Windows.Forms.Cursor("/Pointer.cur")
// imageForm.MouseHover.Add(fun custom2 -> imageForm.Cursor <- customCursor2)
imageForm.MouseHover.Add(fun Cross2 -> imageForm.Cursor <- Cursors.Cross)
[<STAThreadAttribute>]
Application.Run(imageForm)
printfn "\t\t\tНажмите клавишу Enter для продолжения..."
Console.ReadKey()
Console.Clear()
Компилируем приложение (Debug) и запускаем. Жмём «Загрузить», выбираем любое изображение с нужным расширением, затем, если есть принтер жмём на «Печать»:
Рис. 4. 2. Результат работы приложения F#: форма «Печать выбранного рисунка»
Наконец добавим последний код, реализующий рисование. На этот раз будем рисовать курсором мыши на форме (аналог инструмент «карандаша»). Толщина пера будет неизменной, а вот цвет будем выбирать через стандартный диалог выбора цвета. Также на форме будет кнопка «Стереть»:
// Создание формы Windows Forms: Рисование мышкой
Console.Title <- "Различные примеры (F#) :: Рисование мышкой"
open System.Drawing.Drawing2D
let drawingForm = new Form(Text = "Различные примеры (F#) :: Рисование мышкой", AutoScaleDimensions = new System.Drawing.SizeF(60.0F, 13.0F), ClientSize = new System.Drawing.Size(500, 250), StartPosition = FormStartPosition.CenterScreen)
let exitButton3 = new Button(Text = "Выход", Location = new System.Drawing.Point(400, 210))
let eraseButton3 = new Button(Text = "Очистить", Location = new System.Drawing.Point(320, 210))
let colorButton3 = new Button(Text = "Цвет пера", Location = new System.Drawing.Point(240, 210))
drawingForm.Controls.Add(exitButton3)
drawingForm.Controls.Add(eraseButton3)
drawingForm.Controls.Add(colorButton3)
// Создаём диалог выбора цвета
let colorDialog3 = new ColorDialog()
// Создаём объект ColorBlend
let mutable color3 = new ColorBlend()
// Инициализируем объекты рисования
let createGraphics3 = drawingForm.CreateGraphics()
createGraphics3.SmoothingMode<-SmoothingMode.HighQuality
drawingForm.Load.Add(fun background3 ->
// Устанавливаем цвет заливки по умолчанию: Indigo
color3.Colors <- [|Color.Indigo|])
// Событие перемещения мыши на форме
drawingForm.MouseMove.Add(fun trail->
// Когда мышка двигается и левая кнопка нажата
if (trail.Button = System.Windows.Forms.MouseButtons.Left) then
//Рисуем объект с выбранным цветом из диалога выбора цвета (или цвета по умолчанию)
createGraphics3.FillRectangle(new SolidBrush(color3.Colors.[0]),new Rectangle(trail.X,trail.Y,5,5)))
// Событие нажатия кнопки "Очистить", возвращаем цвет формы и стираем всё на форме
eraseButton3.Click.Add(fun erase3-> createGraphics3.Clear(drawingForm.BackColor))
exitButton3.Click.Add(fun quit3 -> drawingForm.Close())
colorButton3.Click.Add(fun colors3 ->
// Вызываем диалог выбора цвета
if colorDialog3.ShowDialog() = DialogResult.OK then
// Сохраняем выбранный цвет
color3.Colors<-[|colorDialog3.Color|])
Application.Run(drawingForm)
printfn "\t\t\tНажмите клавишу Enter для продолжения..."
Console.ReadKey()
Console.Clear()
Компилируем приложение (Debug) и запускаем. Зажимаем левую кнопку мыши на форме, рисуем, выбираем другой текст, рисуем, стираем, выходим:
Рис. 4. 3. Результат работы приложения F#: форма «Рисование мышкой»