Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб.раб. программирование.pdf
Скачиваний:
111
Добавлен:
21.05.2015
Размер:
764.95 Кб
Скачать

Лабораторная работа 25. Моделирование движения по кругу

Задания для самостоятельной работы

Организуем движение по кругу вдоль линии окружности с возможностью изменения значений радиуса и положения центра вращения.

© ИМПИ ОГПУ

Лабораторная работа 26. Цветомузыка

Задания для самостоятельной работы

Создать нечто похожее на цветомузыку на дискотеке. Это будут цветные круги, появляющиеся и исчезающие в окне программы. Все действо будет сопровождаться

мелодией, которую выберем сами.

Лабораторная работа 27. Проигрыватель

Задания для самостоятельной работы

Создать электронный проигрыватель, с помощью которого можно также смотреть видеоролики и фильмы.

© ИМПИ ОГПУ

Лабораторная работа 28. Цветочная поляна

Задания для самостоятельной работы

По щелчку указателя мыши в любом месте зеленой поляны появляется маленький цветочек. Цветок вырастает. Щелкнув в другом месте экрана, образуем новый цветочек, который тоже вырастает. Так можно засадить всю поляну цветами.

Лабораторная работа 29. QUEST

Задания для самостоятельной работы

Создадим игру в стиле Quest (поиск). Суть игры: в начале на экране монитора

появляется черное поле, на котором имеется выключатель. При наведении указателя мыши на выключатель, над ним появляется надпись: «Включить?». Щелкнув по выключателю, черное поле исчезает и появляется интерьер комнаты: дверь, в двери замочная скважина, картина на стене, лампочка под потолком, на переднем плане стол, книга на столе, выключатель и ключ на гвозде. С помощью выключателя можно включить или выключить свет, если щелкнуть на нем указателем мыши. Щелкать указателем мыши можно на любом предмете, находящемся в комнате. При этом рядом с предметом, на котором произведен щелчок, появляется пояснительная надпись. Так при щелчке по двери появляется надпись о том, что дверь закрыта. Щелчок по книге, лежащей на столе, открывает текст с инструкцией, объясняющей суть игры. В процессе игры нужно найти выход из комнаты. Для этого надо использовать предметы, находящиеся в комнате. Очевидно, что для того, чтобы выйти из комнаты, необходимо взять ключ в гвоздя. Щелчок указателя мыши на ключе помещает этот гвоздь в специальный чемоданчик. В левой верхней части картинки имеется кнопка меню, щелчком на которой открывается этот чемоданчик. На его крышке имеются две кнопки: «Закончить» и «Не закончить». Первая кнопка предназначена для выхода из игры, вторая – возвращает пользователя в игру. Чемоданчик остается пустым, пока не щелкнуть по ключу. Для использования ключа необходимо щелкнуть указателем мыши на его изображении в чемоданчике, а затем

© ИМПИ ОГПУ

щелкнуть указателем мыши на замочной скважине. На этом игра заканчивается. Появляется надпись Game Over и приложение закрывается.

Лабораторная работа 30. Тир

Задания для самостоятельной работы

Игрок должен поражать мишень. Для этого он наводит мышкурсор (крест) на центр мишени и нажимает левую мышкнопку. Мишень от выстрела к выстрелу меняет свое положение. Предусмотрены разные уровни сложности. По итогам 10 выстрелов пользователь набирает определенное количество очков относительно своей меткости.

Лабораторная работа 31. Компоненты Delphi для взаимодействия с серверами автоматизации MS Office

В поставку Delphi включен ряд компонентов, специально предназначенных для организации взаимодействия с приложениями MS Office. Данные компоненты располагаются на странице Servers палитры компонентов Delphi IDE.

Компоненты доступа к серверам автоматизации могут использоваться и для доступа к вложенным объектам приложений MS Office (таким как Document, Excel WorkBook и т. д.). Рассмотрим опубликованные свойства компонентов серверов СОМ,

устанавливающих контакт с интерфейсом Application (компоненты

WordApplication, ExcelApplication). PowerPointApplication,

OutlookApplication). Наряду с традиционными для всех компонентов свойствами Name и Tag они содержат четыре дополнительных:

© ИМПИ ОГПУ

AutoConnect: Boolean—определяет, загружать (true) или нет (false) сервер при запуске приложения;

AutoQuit: Boolean— определяет, разрывать (true) или нет (false) связь с

сервером при завершении работы приложения;

ConnectKind: TConnectKind — определяет способ установки соединения с сервером. Это свойство может принимать следующие значения:

ckRunningOrNew – если приложение-сервер уже выполняется, то

производится подключение к запущенной программе, иначе запускается новый экземпляр;

сkNewInstance – всегда создается новый экземпляр сервера;

ckRunningInstance – подключение к уже запущенному серверу;

ckRemote – подключение к удаленному серверу.

RemoteMachineName – сетевое имя компьютера, на котором расположен

сервер.

При использовании компонентов для доступа к приложениям Office достаточно разместить компонент на форме, а затем вызывать требуемые методы сервера автоматизации. Например, для того, чтобы выполнить подключение к серверу Word, создать в нем новый документ, передать в него текст и выйти, можно использовать следующий фрагмент кода

With WordApplication1 do

Begin

Connect;

Visible:=True; Documents.Add(EmptyParam, EmptyParam);

Selection.InsertAfter(’Вводим текст в новый документ’); Quit;

Disconnect; end;

Отметим, что большинство параметров методов имеют тип OleVariant, а для пустых параметров используется специальное значение EmptyParam.

Рассмотрим взаимодействие с MS Word. Основной объект, представляющий программу Word WordApplication. Его основные свойства:

Visible: Boolean – если false, то программа будет невидима;

ActiveDocument: Document – ссылка на активный документ;

Documents: Documents – список открытых документов;

Selection: Selection – выделенный фрагмент текста или текущая

позиция курсора.

Для выхода из программы используется метод Quit, для печати документа –

PrintOut.

© ИМПИ ОГПУ

Массив документов Documents содержит свойство Count: Integer – количество документов и методы:

Add(Var Template, NewTemplate: OleVariant) – создание нового

документа. Необязательные параметры задают имя шаблона и логическое значение, которое задает, является ли создаваемый документ шаблоном;

Open(var FileName: OleVariant,…) – открывает файл. Кроме

первого параметра – переменной, задающей имя файла, – требует еще девять параметров, которые задают различные режимы открытия файла. Обычно все они равны EmptyParam.

Save( var NoPromt, Format: OleVariant) – сохраняет открытые

документы. Если первый параметр равен true, то не будет выдан запрос на сохранение документа. Второй параметр задает формат сохраняемого документа.

Close(var SaveChanges, Format, RouteDocument: OleVariant)

закрывает все документы.

Item(var Index: OleVariant): Document – возвращает ссылку на документ. Index – его порядковый номер. Документы нумеруются с единицы.

С каждым документом Word можно работать как с объектом класса

TWordDocument.

Для этого компонент WordDocument нужно присоединить к одному из открытых документов вызовом метода ConnectTo(D: Document). Например, для присоединения к активному документу вызываем

WordDocument1.ConnectTo(WordApplication1.ActiveDocument);

Компонент содержит следующие основные свойства:

Content: Range – объект, содержащий весь текст документа;

Name: WideString – имя документа;

Paragraphsсодержит все абзацы документа;

Tables – содержит все таблицы документа.

Также компонент содержит методы Save и Close, аналогичные методам объекта Documents, метод PrintOut для печати документа.

Метод Range(var Start, End_: OleVariant): Range возвращает объект типа Range, содержащий фрагмент текста, начиная с символа с номером Start и заканчивая символом с номером End_.

Для ввода и форматирования текста в MS Word используются свойства и методы объектов Paragraph, Range, Selection.

© ИМПИ ОГПУ

Объект Paragraph – элемент объекта Paragraphs, который является одним из свойств WordDocument. У объекта Paragraphs есть методы:

Add(var Range: OleVariant): Paragraph – добавление абзаца. Необязательный параметр Range задает фрагмент текста, перед которым будет добавлен абзац. Если этот параметр равен EmtyParam, то абзац добавляется в конец документа.

Item (Index: integer): Paragraph – возвращает абзац, имеющий номер Index.

У объекта Paragraph есть свойства, задающие параметры форматирования абзаца:

Alignment – способ выравнивания текста абзаца. Может принимать

значения :

owdAlignParagraphCenter,

owdAlignParagraphLeft,

owdAlignParagraphRight,

owdAlignParagraphJustify;

FirstLineIndent: Real – отступ красной строки в пунктах;

LeftIndent, RightIndent: Real – левый и правый отступы;

и т. д.

Объект Selection задает выделенную область текста. Он имеет следующие основные свойства:

Range – содержит выделенный фрагмент. Может использоваться для установки параметров шрифта;

Text: String – собственно текст;

Font – шрифт, с ним может быть связан специальный компонент Delphi

WordFont;

Start, End_ – начальный и конечный символ выделения;

и методы:

TypeText(Text: WideString) – вставляет текст вместо выделения, при этом новый текст не выделяется;

InsertBefore(Text: WideString)

иInsertAfter(Text: WideString) – вставляют текст до или после выделения, при этом текст включается в выделение.

Объект Range также содержит свойства Font, Start, End_ и методы

InsertAfter, InsertBefore, а также дополнительные свойства Bold,

© ИМПИ ОГПУ

Italic: Integer – равны единице, если включена жирность или наклон и нулю, если выключены.

Объект Font (свойство у Selection или у Range) содержит свойства шрифта, в том числе Bold, Italic, Size: integer – размер шрифта, Name:

WideString – имя шрифта и другие.

Для работы с таблицами используется свойство Tables объекта

WordDocument. Добавляется таблица методом Add (Range: Range; NumRows, NumCols: integer); где Range – фрагмент текста, в котором создается таблица, NumRows и NumCols – количества строк и столбцов. Метод Item(index: Integer): Table возвращает таблицу с номером Index.

Для работы с ячейкой таблицы используется метод Cell(Row, Column: integer): Cell, возвращающий ячейку таблицы – объект Cell.

Текст ячейки таблицы можно получить с помощью свойства Range объекта Cell. Метод Select выделяет ячейку таблицы. Таким образом, при заполнении таблицы можно применить любой из двух способов:

использовать методы InsertBefore или InsertAfter объекта

Cell(i,j).Range;

вызвать метод Cell(i,j).Select, а затем использовать для ввода методы объекта Selection.

Пример: Добавим в активный документ таблицу умножения в место, где стоит курсор.

With WordApplication1 do begin

ActiveDocument.Tables.Add(Selection.Range, 9, 9);

For i := 1 to 9 do For j := 1 to 9 do

ActiveDocument.Tables.Item(1).Cell(i,j).Range.InsertBefore(IntToStr(i*j))

End;

Задания для самостоятельной работы

1.Создать в MS Word новый документ, добавить туда заголовок (выровненный по центру полужирным начертанием), напечатать в следующей строке свои фамилию

иимя, сохранить под именем MyName.doc и закрыть MS Word.

2.Открыть документ MyName.doc, добавить в конец документа таблицу квадратов чисел от 0 до 99.

© ИМПИ ОГПУ