ДЕПАРТАМЕНТ ОБРАЗОВАНИЯ ГОРОДА МОСКВЫ
МОСКОВСКИЙ ГОРОДСКОЙ ДВОРЕЦ ДЕТСКОГО (ЮНОШЕСКОГО) ТВОРЧЕСТВА
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ РАДИОТЕХНИКИ,
ЭЛЕКТРОНИКИ И АВТОМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ УЧРЕЖДЕНИЕ
ГОСУДАРСТВЕННЫЙ НАУЧНО-ИССЛЕДОВАТЕЛЬСКИЙ ИНСТИТУТ
ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И ТЕЛЕКОММУНИКАЦИЙ “ИНФОРМИКА”
КОРПОРАЦИЯ CISCO SYSTEMS
НАЦИОНАЛЬНАЯ КОМПЬЮТЕРНАЯ КОРПОРАЦИЯ
, ,
М Е Т О Д И Ч Е С К И Е У К А З А Н И Я
по курсу «Информатика»
для выполнения лабораторных работ
по направлению «Информационные системы»,
по специальности «Информационные системы и технологии»
Кафедра «ТИССУ» Факультета «Кибернетики» МИРЭА
Сектор НИТ отдела Технического творчества МГДД(Ю)Т

Москва 2007
УДК 9
Рецензенты: проф., к. т.н.
проф., д. п.н.
Главный редактор: Первый заместитель директора МГДД(Ю)Т
Руководитель эксп. техн. комплекса: заведующий отделом МГДД(Ю)Т
Консультант по менеджменту курса: доц., к. т.н.
Литературный редактор: заместитель заведующего отделом МГДД(Ю)Т
Выпускающие редакторы: ,
Технологическое обеспечение: ,
Матчин В. Т., Паршин А. Ю., Свечников С. В. Методические указания (учебно-методическое пособие) по курсу «Информатика» для выполнения лабораторных работ по направлению «Информационные системы», по специальности «Информационные системы и технологии» (в системе дополнительного образования МГДД(Ю)Т по сектору Информатики и ВТ отдела Технического творчества МГДД(Ю)Т и профессионального высшего образования по кафедре Технических и информационных средств систем управления МИРЭА по дисциплине «Информатика» специальности «Информационные системы и технологии», а также по аналогичному направлению бакалавриата) /Под общ. ред. /. Лицей № 000 «Воробьевы горы», МГДД(Ю)Т, МИРЭА, ФГУ ГНИИ ИТТ «Информика», Cisco Systems, НКК. М., 20 с.
Настоящие методические указания разработаны для системы непрерывного образования по дисциплине «Информатика», изучаемой в качестве базовой дисциплины студентами первого курса МИРЭА по специальности «Информационные системы и технологии» и учащимися вузов, техникумов, ПТУ и средних школ (в том числе лицея № 000 «Воробьевы горы») в системе дополнительного развивающего образования сектора Информатики и ВТ отдела Технического творчества МГДД(Ю)Т. Настоящие методические указания печатаются в соответствии с рекомендациями (по решению от 27.12.06) редакционно-издательского совета МИРЭА.
Курс опирается на информационную поддержку специализированного тематического образовательного минипортала, созданного под патронажем ФГУ ГНИИ ИТТ «Информика» сектором НИТ МГДД(Ю)Т и кафедрой ТИССУ МИРЭА (www. *****).
По направлению, специальностям (специализациям):
- 230200 «Информационные системы»; 230201 «Информационные системы и технологии»; в дополнительном образовании по сектору НИТ МГДД(Ю)Т; 051301 «Системный анализ, управление и обработка информации (по отраслям)».
База данных размещена на сервере Технологической экспериментальной площадки ФГУ ГНИИ ИТТ “Информика” - МГДД(Ю)Т – МИРЭА (http://www. *****/). Соответствующий автоматизированный глоссарий встроен в ядро информационной системы дополнительного образования московского региона под управлением Lotus Notes.
ББК
Адрес в МГДД(Ю)Т: email – *****@***ru, Москва, ул. Косыгина, комн. 4-21, 4-31.
Адрес в МИРЭА: email – *****@***ru, Москва, пр-т Вернадского, д. 78.
Адрес в ФГУ ГНИИ ИТТ «Информика»: www. *****, Москва, ул. Тверская,.
МГДД(Ю)Т Заказ ___________ Тираж 40 экз.
Содержание
Введение. 4
Лабораторная работа №1. Visual : создание и проверка XML-файла. 5
Лабораторная работа №2. Табло аэропортов Аэрофлота. 10
Лабораторная работа №3. Работа с прозрачностью в библиотеке GDI с использованием C# 14
Лабораторная работа №4. Создание и гармонизация динамического оконного приложения 18
Лабораторная работа №5. Создание сетевой многопользовательской игры на платформе. NET с применением технологии. NET Remoting. 42
Источники литературы.. 60
Введение
Двух семестровая дисциплина «Информатика» согласно действующим учебным планам изучается в МИРЭА по специальности «Информационные системы и технологии» (по выпускающей кафедре Технических и информационных средств систем управления (ТИССУ) факультета «Кибернетика») студентами первого курса, в том числе по учебным планам подготовки специалистов, а также бакалавров. Эта же дисциплина является основной в учебной деятельности системы развивающего дополнительного образования сектора Информатики и ВТ отдела Технического творчества МГДД(Ю)Т. Структура, содержание, задачи и средства информационной поддержки в учебной деятельности сектора Информатики и ВТ и кафедры ТИССУ в основном совпадают. Более того, обе эти разновидности учебного процесса поддерживаются на единой интегрированной информационно-технологической и методической основе средствами созданного Центром НИТ МИРЭА-МГДД(Ю)Т (сНИТ) под патронажем ФГУ ГНИИ ИТТ «Информика» специализированного тематического вертикального минипортала. К тому же в практике МИРЭА ко второму полугодию первого курса обучения по кафедре ТИССУ приказом ректора МИРЭА формируются группы элитного инженерного образования с углубленной креативной составляющей обучения, в том числе по информатике. Все вышеуказанное обусловило разработку единого интегрированного многомодульного инновационного образовательного миникомплекса по информатике, в составе которого размещены 5 лабораторных работ, поддерживающих лабораторный практикум дисциплины.
Это означает, что согласно учебным планам в каждом из двух полугодий курса полагается реализовать 18 учебных часов лабораторного практикума по информатике, отбирая и выполняя работы из приводимого далее перечня по выбору обучающегося, согласованного с преподавателем в самом начале полугодия.
Эти 18 часов структурируются следующим образом в каждом из двух полугодий:
· первые два часа из восемнадцати посвящаются инструкции по ТБ, закреплению и освоению компьютеризированного рабочего места, поддерживаемого указанным выше минипорталом, ознакомлению с этим минипорталом и его возможностями, ознакомлению с настоящими методическими указаниями и выбору четырех тем исследований из помещенного далее многомодульного массива, согласованию (в форме коллоквиума) с преподавателем сделанного выбора;
· выполнение двух комплексных лабораторных исследовательских работ по 4 х 2 учебных часа каждая два четырехчасовых занятия) согласно приведенным ниже темам с последующим оформлением отчетов по лабораторному практикуму (в домашнем режиме);
· защита результатов проведенных и оформленных по результатам исследований, осуществляемая на последнем лабораторном занятии (4 часа) и/или, в крайнем случае, на зачетах, причем итоговый зачет по лабораторному практикуму формируется по рейтинговой системе: успешно пройденный коллоквиум по любой из тем массива оценивается в 1 балл, выполнение, оформление и защита отдельно взятой исследовательской лабораторной работы – в 4 балла; для получения зачета за полугодие (семестр) необходимо набрать не менее 10 баллов.
Поскольку цели, задачи (задания на выполнение лабораторных работ), краткие теоретические сведения, контрольные вопросы, вопросы самопроверки и основные источники в условиях реализации многомодульного интегрированного массива тем лабораторных исследований идентичны или схожи для различных тем, в настоящих методических указаниях они также приводятся в обобщенном интегрированном виде.
Цель: углубление освоения теоретической части курса по избранной теме, самостоятельные выявление наукоемкой компоненты для лабораторного исследования и формулирование обучающимся в этой связи конкретной цели исследования.
Задачи или задача исследования (задание): также формируется обучающимся самостоятельно, понимаемая как рубеж исследований, преодоление которого позволяет достичь цель – с опорой на постановку практических исследовательских задач, приведенных в тематических модулях массива.
Краткие теоретические сведения: на уровне небольшого реферата составляются и вносятся в отчет по лабораторной работе самим учащимся в процессе подготовки к выполнению лабораторного исследования (том числе в порядке практических работ и занятий по курсу, а также в режиме самостоятельной работы), причем рекомендуется вносить и обобщать только те сведения, которые непосредственно связаны с особенностями решаемых задач, опираясь для этого на информационные материалы упомянутого выше минипортала.
Вопросы (и ответы) по работе: также черпаются из минипортала и в качестве примерных помещаются обучающимися в отчеты лабораторного практикума в количестве не менее пяти по каждой теме (при этом обучающийся обязан удовлетворительно отвечать на эти и другие вопросы преподавателя на зачете).
Источники: в отчетах по лабораторному практикуму наряду со ссылкой на настоящие методические указания и электронный адрес минипортала учащиеся обязаны в строгом соответствии с требованиями ЕСКД указать конкретно использованные в работе информационные источники и адреса.
Отчет по каждой теме лабораторного практикума: должен выпускаться на твердом носителе и в электронном виде на CD ROM (одна дискета на все работы полугодия) с соблюдением всех требований ЕСКД, быть аккуратно оформленным, подписанным и датированным студентом. На отчете по каждой из тем преподаватель делает отметку о прохождении коллоквиума (1 балл) и защите работы и отчета по ней (еще 4 балла).
Подготовка к лабораторным исследованиям подкрепляется изучением теоретического материала на лекционных и иных занятиях по курсу, сопровождается выполнением и защитой курсовой (творческой выпускной) работы, завершающей изучение настоящей учебной дисциплины.
Ниже приводится описание пяти лабораторных работ (5 модулей массива портала), из которых (или из общего многомодульного массива, где по состоянию на декабрь 2006 года имеется до 39 модулей и их число будет пополняться) преподаватель отбирает и задает студенту по два в каждое полугодие для выполнение двух комплексных лабораторных работ (4 х 2 уч. час.).
Лабораторная работа №1.
Visual : создание и проверка XML-файла
В лабораторной работе будет создан XML файл, а также файл схемы XSD, с помощью которого можно проверить правильность ввода информации в XML-файл.
В лабораторной работе используется инструментарий Visual Studio для работы с XML, однако большинство операций можно повторить при наличии блокнота (notepad. exe) и браузера Internet Explorer.
1. Подготовка виртуального рабочего места.
Этап показывает удобство работы в Visual Studio даже с проектами, не имеющими ничего общего с программированием (например, редактирование XML).
Откройте окно Visual .
Создайте новый проект (Project). File -> New -> Project. В качестве типа проекта – Visual Studio Solutions -> Blank Solution (так как проект не относится к какому-либо языку программирования)

В окне Solution Explorer появился единственный элемент – Solution ‘имя’ (0 projects).
2. Создание XML-файла
На этом этапе создается XML-файл, который затем проверяется на правильность с точки зрения стандарта языка XML.
Добавим новый файл в наш проект. Для этого есть два способа:
Щёлкнув правой кнопки мыши на элемент Solution в Solution Explorer в контекстном меню выберем Add -> Add New Item…
В меню Project выберем элемент Add New Item…
Тип создаваемого файла – XML-файл. Имя файла – Sample. xml

После создания открывается окно редактирования XML-файлв с единственной строчкой:
<?xml version ="1.0" encoding="utf-8" ?> |
Она говорит о том, что файл имеет тип XML версии 1.0 и записан в кодировке UTF-8. Мы будем работать с кодировкой Windows-1251 (стандартная кодировка MS Windows для работы с кириллицей). Текущую кодировку можно поменять двумя способами:
Вручную в тексте файла заменить utf-8 на windows-1251
В свойствах XML-файла, которые видны в окне Properties (если окна не видно, его можно вызывать через контекстное меню или через меню View) поменять свойство encoding на Cyrillic (Windows). Окно свойств предоставляет на выбор уже имеющийся список самых популярных кодировок (заметим, что там есть и кириллица).
Теперь внесём текст файла. Файл похож по своему виду на HTML. Основное отличие – теги (ключевые слова, заключённые между символами < и >) предназначены не для форматирования текста, а для создания структуры данных.
<?xml version="1.0" encoding="windows-1251" ?> <NewsLine> <News state="archived"> <name>Завтра - .NET Day!</name> <date>T12:00:00</date> <content>Завтра в пройдёт. NET Day</content> </News> <News state="published"> <name>.NET Day - Лабораторные работы</name> <date>T12:00:00</date> <content>Проводятся лабораторные работы в рамках. NET DAY</content> </News> <News state="submitted"> <name>.NET Day прошёл</name> <date>T12:00:00</date> <content>Вчера прошёл. NET DAY</content> </News> </NewsLine> |
Этот XML-файл содержит текст трёх новостей, а точнее их заголовок, дату и время, текст.
Проверка XML-файла на правильность с точки зрения стандарта XML
Очень важно соблюдать структуру XML-файла. Если в HTML можно не закрыть пару тегов, открыть несколько лишних, менять местами и т. п., то в XML-файле такого делать нельзя. Возможно, это создает неудобства для пользователей, но это огромная помощью компьютеру, который будет понимать любой XML-файл однозначно, если он правильно оформлен, и не перепутает никогда один тег с другим. Для проверки XML-файла (если вы конечно, не хотите обнаружить ошибки уже тогда, когда отдаёте программу заказчику), можно использовать инструментальные средства Visual Studio.
Чтобы проверить XML-файл, нужно выбрать из меню XML (оно появляется только при редактировании XML-файлов) пункт Validate XML Data.
Если в файле есть ошибки, то появится окно «Task List», куда каждая ошибка вносится в качестве задачи-напоминания, которую надо выполнить (исправить ошибку).
Скорее всего возникнет ошибка «…\Sample. xml(1): Visual Studio could not locate a schema for this document. Validation can only ensure this is a well formed XML document and cannot validate the data against a schema.». На эту ошибку пока можно не обращать внимания. Остальные ошибки необходимо исправить.
Создание схемы.
Мы проверили файл XML на соответствие стандарту этого языка. Но вполне может быть, что файл соответствует стандарту языка, но не соответствует нашим собственным стандартам. Например, мы хотим, чтобы у нас у новости всегда были три пункта – не больше и не меньше. Чтобы в элементе даты (Date) содержалось верное определение даты. Эти требования не содержатся в стандарте языка XML. Для того, чтобы компьютер узнал об этих требованиях, о нашем собственном стандарте, о наших собственных ограничениях на XML-данные, используются файлы схем (schema).
В этом пункте мы научимся создавать и использовать схемы.
Схему можно создать двумя способами.
Во-первых, просто создать новый файл с типом XML Schema и внести туда данные.
Во-вторых, на основе уже существующего XML-файла (используемого как образец), можно создать новую схему. Да, после этого её придётся редактировать, но у нас будет под глазами образец и мы не ошибёмся в названиях тегов.
Воспользуемся вторым способом. При открытом XML-файле в меню XML выберем пункт Create Schema.
На экране появится визуальное изображение структуры файла. В частности – структуру элемента News с тремя вложенными элементами и одним атрибутом.
Чтобы перейти к XML-тексту схемы, нужно выбрать вкладку XML внизу поля редактирования.
Полученный файл нужно сохранить (нажатием Ctrl+S), а потом добавить в текущий проект, но используя не Add New Item, а Add Existing Item (добавить существующий элемент). Файл схемы создаётся в той же папки, что и XML-файл.
Связывание XML-файла и схемы.
Чтобы связать наш XML-файл с созданной схемой, нужно вернуться в этот файл и у корневого элемента добавить новый атрибут:
xmlns=http://tempuri. org/Sample. xsd |
Атрибут сообщает XML-процессору, что этот файл создавался в расчёте на определённую схему, и данные в файле должны этой схеме удовлетворять.
Теперь можно проверить файл на соответствие не только стандарту XML, но и этой схеме. Для этого опять выберем XML -> Validate XML Data.
Для проверки добавим в один из элементов News элемент Test:
<News state="published"> <name>.NET Day - Лабораторные работы</name> <date>T12:00:00</date> <test></test> <content>Проводятся лабораторные работы в рамках. NET DAY</content> </News> |
Файл остался правильно оформленным с точки зрения стандарта XML, однако в нашей схеме нет разрешения добавлять новые элементы в News. Поэтому когда мы снова проверим файл с помощью команды Validate, мы получим сообщения об ошибках:
…\Sample. xml(11): Element 'http://tempuri. org/Sample. xsd:News' has invalid child element 'http://tempuri. org/Sample. xsd:test'. Expected 'http://tempuri. org/Sample. xsd:content'. An error occurred at (11, 10). …\Sample. xml(11): The 'http://tempuri. org/Sample. xsd:test' element is not declared. An error occurred at (11, 10). |
Уберите элемент test и убедитесь, что файл снова стал удовлетворять нашим стандартам.
Уточнение схемы
Созданная автоматически схема хоть и может использоваться, но имеет ряд неточностей. Например, она позволяет вообще не включать какой-либо из элементов в элемент News, или делать это несколько раз. Поэтому схему надо уточнить, исправив её текст на:
<?xml version="1.0" ?> <xs:schema id="NewsLine" targetNamespace="http://tempuri. org/Sample. xsd" xmlns="http://tempuri. org/Sample. xsd" xmlns:xs="http://www. w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified"> <xs:element name="NewsLine"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element name="News"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1" /> <xs:element name="date" type="xs:dateTime" minOccurs="1" maxOccurs="1" /> <xs:element name="content" type="xs:string" minOccurs="1" maxOccurs="1" /> </xs:sequence> <xs:attribute name="state" type="xs:string" form="unqualified" /> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema> |
Сделайте это и снова проверьте XML файл на корректность.
Добавление элемента
Добавьте в документе XML еще один элемент <status1> </status1> и заполните его данными. Примечание: элемент необходимо добавить в каждый блок <News </News> Подсказка: заполнить элемент можно как непосредственно в коде - вкладка внизу “XML” так и через вкладку “Data”)
Вопросы:
В чем отличие предыдущей XML-схемы от новой?
Зачем нужна XML-схема и что она описывает?
Из чего состоит XML-документ?
Какая информация отображается при переключении в XML-документе в строчке внизу на вкладку “Data”?
Каким образом проверяется корректность XML-документа и как называется этот процесс?
Каким образом создается проект документа XML в Visual Studio?
Добавьте к существующим записям три новые записи и заполните их. Подсказка: воспользуйтесь вкладкой “Data”, расположенной внизу документа.
Зачем необходимо делать уточнение схемы?
Почему возникла ошибка в пункте 4 раздела «Проверка XML-документа …..» при проверке XML-документа?
Почему при добавлении элемента <test></test> выдается ошибка? Каким образом можно сделать так чтобы ошибки не было?
Лабораторная работа №2.
Табло аэропортов Аэрофлота
В лабораторной работе на языке C# будет создано графическое приложение для Windows, которое позволит вам получать оперативную информацию о рейсах аэрофлота. Для получения данных о рейсах будет использован веб-сервис аэрофлота, расположенный на веб-сайте http://webservices. *****.
В лабораторной работе используются технологии Windows Forms для создания пользовательского интерфейса и WebServices для получения данных в реальном времени через Интернет. Полученная программа выполняется в среде Microsoft .NET Framework.
Для выполнения лабораторной работы понадобится компьютер с установленной на нем и доступ в интернет.
Откройте VisualStudio .NET запустив иконку Microsoft Visual Studio .NETСоздание интерфейса пользователя
На первом этапе будет создан интерфейс пользователя.
Выберите меню File – New – Project В окне Project types выберите Visual C# Projects В окне Templates выберите Windows Application Остальные поля оставьте без изменений, нажмите кнопку OK Убедитесь, что на экране слева видно окно Toolbox, а справа видно окно Properties. Если это не так, выберите их из предлагаемых снизу закладок. Из окна Toolbox перетащите на рабочую поверхность формы следующие элементы:a. Элемент Label, измените в окне Properties значение параметра Text на ‘Date’
b. Элемент ComboBox, поместите его справа от предыдущего элемента
c. Элемент Button, поместите его справа от предыдущего элемента, измените в окне Properties значение параметра Text на ‘Initialize’
d. Элемент Label, измените в окне Properties значение параметра Text на ‘Airport’
e. Элемент ComboBox, поместите его справа от предыдущего элемента
f. Элемент Button, поместите его справа от предыдущего элемента, измените в окне Properties значение параметра Text на ‘Get info’
g. Элемент ListBox, поместите его снизу от предыдущих элементов, увеличьте его размер до краев формы и измените в окне Properties значение параметра Anchor на ‘top, bottom, left, right’
В результате необходимо получить следующую форму:

Поглощение веб-сервиса Аэрофлота
На втором этапе будут созданы классы для доступа к данным Аэрофлота. Для этого мы поглотим веб-сервис, используя встроенные средства Visual .
Убедитесь, что справа на экране видно окно Solution. Если это не так, выберите его из предлагаемых снизу закладок. Нажмите правую кнопку мыши на названии проекта (WindowsApplicationX) и выберите Add web reference… из появившегося меню В поле Address наберите ‘http://webservices.aeroflot.ru/FlightStatus.wsdl’, нажмите Enter После появления в окне информации о веб-сервисе Аэрофлота нажмите кнопку Add referenceVisual Studio .NET автоматически сгенерирует необходимые классы и типы данных для доступа к информации о рейсах Аэрофлота через Интернет.
Программирование действий пользователя
На третьем этапе будут запрограммированы реакции приложения на действия пользователя.
Выполните двойной щелчек мышью на кнопку с надписью ‘Initialize’ на рабочей поверхности формы – появится окно редактора кода Запомните то место, в котором сейчас находится курсор. Перейдите в начало файла с кодом и добавьте одну строчку ‘using *****. aeroflot. webservices’ так, чтобы начало файла выглядело следующим образом (замените WindowsApplicationX на название вашего проекта):using System; using System. Drawing; using System. Collections; using ponentModel; using System. Windows. Forms; using System. Data; using *****. aeroflot. webservices; … |
… private void button1_Click(object sender, System. EventArgs e) { using (FlightStatus fs = new FlightStatus()) { Airport[] aeroports = fs. AirportList(); boBox2.Items. Clear(); foreach(Airport a in aeroports) { boBox2.Items. Add( a. code + " - " + a. city + " - " + a. name); } boBox2.SelectedIndex = 0; boBox1.DataSource = fs. DateList(); } } … |
… private void button2_Click(object sender, System. EventArgs e) { this. listBox1.Items. Clear(); using (FlightStatus fs = new FlightStatus()) { string aero_code = ((string) tboBox2.SelectedItem).Substring(0, 3); Flight[] flights = fs. Arrival(aero_code, "" + boBox1.SelectedItem); if (flights == null) return; foreach (Flight f in flights) { string str = string. Format( "{0} {1} {2} {3} {4} {8} {9} {10}", //f. flt_pk, pany, f. flight_no, f. airport_inter, f. airport, f. sched, f. plan, f. fact, f. calc, f. real, f. union_flight_no, f. status ); this. listBox1.Items. Add(str); } } } … |
Тестирование работы программы
Итак, вся программа уже написана, осталось ее скомпилировать и попробовать в действии!
Если вы видите на экране табло Аэрофлота в Шереметьево-2, то можно считать эту часть работы успешно выполненной.
Лабораторная работа №3.
Работа с прозрачностью в библиотеке GDI с использованием C#
В лабораторной работе вы создадите небольшое Windows-приложение, демонстрирующее как работать с графической библиотекой. NET (классы пространства имен System. Drawing).
Перед началом лабораторной работы мы посмотрим на то, что у нас должно будет получиться в действии. Зайдите в папку \LABS\GDI\GDI_demo и запустите AutomobileFades. exe. При нажатии кнопки в правом нижнем углу экрана одна картнка плавно сменяется другой. Эффект «плавности» достигается с помощью постепенного изменения прозрачности картинок по событию таймера.
В папке \LABS\GDI\GDI_LABsource откройте файл AutomobilesFades. sln с помощью Visual .
Откройте файл формы Form1.cs, переключитесь в режим обзора кода(нажмите правой кнопкой на файл формы и выберите View Code)
В списке используемых пространств имен (вверху файла) включены такие базовые пространства имен, как
using System; using System. Windows. Forms; |
Нам необходимо добавить в этот список пространства имен .NET Framework Base Class Library для работы с двумерной графикой (под //add code here 1):
using System. Drawing; using System. Drawing. Drawing2D; using System. Drawing. Imaging ; |
Далее в классе Form1
public class Form1 : System. Windows. Forms. Form |
содержится код нашей Windows-формы. Функциональность ее следующая. При нажатии на кнопку одна картинка плавно заменяется другой с использованием эффекта fade. Сам эффект реализован с помощью постепенного изменения прозрачности картинок по событию таймера.
На форму уже добавлены компоненты «Кнопка» и «Таймер», а также контейнер для всех компонентов, содержащихся на форме:
private ponentModel. IContainer components; private System. Windows. Forms. Timer timer1; private System. Windows. Forms. Button button1; |
Нам понадобятся также 3 объекта класса Bitmap, позволяющего работать с битовыми изображениями для хранения 3 картинок и несколько переменных, которые будут использованы для изменения прозрачности картинок. masterTransparency – это число из диапазона [0,1] соответствующее прозрачности каждого из трех изображений. При возникновении события OnPaint
protected override void OnPaint(System. Windows. Forms. PaintEventArgs e), |
которое будет инициироваться таймером мы будем рисовать все 3 картинки на форме одновременно. Прозрачность текущей картинки равна 0, прозрачность остальных – 1. При нажатии на кнопку прозрачности картинок соответствующим образом меняются.
Прозрачности картинок хранятся в переменных masterTransparency, middleTransparency и outerTransparency.
private Bitmap btmInner = new Bitmap("Inner. png"); private Bitmap btmmiddle = new Bitmap("middle. png"); private Bitmap btmouter = new Bitmap("outer. png"); private bool removemiddle = false; private bool removeouter = false; private static float masterTransparency = 1.0f; private static float middleTransparency = 1.0f; private static float outerTransparency = 1.0f; |
Добавьте эти переменные под //add code here 2
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 |


