Смекни!
smekni.com

Разработка программного обеспечения (стр. 7 из 8)

begin

OLEContainerl. CreateObj ectFromFile (' H::\l .xls ' , false) ;

end;

Шаг 8. Добавьте еще одну кнопку на форму и напишите для нее обработчик события нажатия на нее:

procedure TForml.Button2Click(Sender: TObject);

begin

OLEContainerl.Close;

end;

Шаг9. Скомпилируйте проект. Нажмите на кнопку «Загрузить файл». В OLEContainer'e отобразится содержимое файла.

Щелкните 2 раза на OLEContainer. Вы получите результат, показанный на рис. 2.

Excel будет встроен в ваше приложение, и в нем будет открыт ваш файл. Для того чтобы выйти из режима редактирования, нажмите кнопку «Закрыть файл».

Шаг 10. Теперь снова поменяйте процедуру для первой кнопки:

procedure TForml.ButtonlClick(Sender: TObject);

begin

OLEContainerl.InsertObjectDialog;

end;

Шаг 11. Скомпилируйте проект. Теперь при нажатии на кнопку «Загрузить файл» будет появляться стандартная форма, показанная на рис. 3. В ней показаны все программы, которые вы можите встраивать или связывать со своей программой.

Рис.1. Иллюстрация шага 6.

Рис.2. Иллюстрация шага 9.

Рис.3. Иллюстрация шага 11.

Можно создать новый объект этих программ или использовать объекты из файла, также есть возможность связывать объект или внедрять в приложение (рис. 4).

Рис. 4. Иллюстрация шага 11.

Шаг 12. Поэкспериментируйте с различными приложениями.

Программа 2 (СОМ сервера Delphi). I

Рассмотрим также, как можно использовать СОМ-технологии для внесения изменений в документы других программ.

Следующая программа предназначена для записи данных из вашей программы в документ Excel и считывания информации из документа. 1

1. Найдите на закладке Servers компонент ExcelApplication и
поместите его на форму нового приложения. Установите свойство этого компонента AutoQuit=true.

2. Создайте файл 'H:\2.xls\

3. Поместите на форму одну кнопку. Дайте ей название «Записать данные». Напишите для нее обработчик события нажатия на кнопку:

procedure TForml.ButtonlClick(Sender: TObject);

var Filenamel:01eVariant;

begin

ExcelApplicationl.Connect;

//Запись в существующий файл

Filenamel: = 'Н:\2.xls ' ;

ExcelApplicationl.Workbooks.Open(Filenamel, EmptyParam,

EmptyParam,EmptyParam, EmptyParam, EmptyParam,

EmptyParam, EmptyParam,EmptyParam, EmptyParam,

EmptyParam, EmptyParam, false, 0);

//Установкацветазаливкиячейки Excel

ExcelApplicationl.Range[Edit2.Text,Edit2.Text].Interior .Colorlndex := 5;

//ЗанесениеинформациивопределеннуюячейкутаблицыExcelApplicationl.Range[Edit2.Text,Edit2.Text].Value:=

Editl.Text;

ExcelApplicationl.Disconnect;

end;

4. Добавьте на форму два компонента Label и Edit, как показано на рисунке.

5. Скомпилируйте проект. Внесите текст для вставки в Excel
и номер ячейки (он состоит из буквы - номер столбца, и цифры - номер строки) (рис. 5).

Рис.5. Иллюстрация шага 5.

После нажатия на кнопку программа спросит вас: «Сохранить изменения в файле?». Сохраните. Потом откройте файл и убедитесь, что данные записаны в нужную ячейку.

6. Добавьте в предыдущую процедуру для наглядности следующую строку:

... ...

ExcelApplicationl.Visible[0]:=TRUE;

//Установка цвета заливки ячейки Excel

......

7. Скомпилируйте проект еще раз. Теперь Excel будет запущен не в фоновом режиме, как это было ранее.

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

8.Измените название элементов на форме.

9. Измените процедуру нажатия на кнопку следующим образом:

procedure TFcrml.ButtonlClick(Sender: TObject);

var FileNamel: OleVariant;

begin

ExcelApplicationl.Connect;

Filename1: = 'D:\2.xls1;

ExcelApplicationl.Workbooks.Open(Filenamel, EmptyParam,

EmptyParam, EmptyParam, EmptyParam, EmptyParam,

EmptyParam,

EmptyParam, EmptyParam, EmptyParam, EmptyParam,

EmptyParam, false, 0);

Editl.Text:=ExcelApplication1.Range[Edit2.Text, EmptyParam].Text;

ExcelAppiicationl.Disconnect; end;

10. Создайте программу для записи информации в документ Word. Для этого измените форму проекта, как показано на рис. 6 (добавьте компоненты WordApplication и WordFont) и перепишите обработчик нажатия на кнопку:

procedure TForml.ButtonlClick(Sender: TObject);

begin

WordApplicationl.Connect;

//создание нового документа

WordApplicationl.Documents.Add(EmptyParam,EmptyParam);

WordApplicationl.Visible:=true;

//Установкашрифта

WordFontl .ConnectTo (WcrdApplicationl. Selection . Font) ;

WordFontl.Bold:=3;

WordFontl.Size:=17;

//Вставкатекста

WordApplicationl.Selection.InsertAfter(Editl.Text);

WordApplicationl.Disconnect;

end;

Рис.6. Форма с компонентами WordApplication и WordFont.

Индивидуальные задания.

Ниже приведено 15 вариантов задач. По указанию преподавателя выберите свое индивидуальное задание. Уточните условие задания, количество, наименование, типы исходных данных.

Во всех заданиях скалярные переменные вводить с помощью компонента TEdit с соответствующим пояснением в виде компонента TLabel. Скалярный результат выводить в виде компонента ExcelApplication в файл табличного процессора Excel или WordApplication в файл Word.

1. Дан массив из k символов. Вывести на в файл табличного процессора сначала все цифры, входящие в него, а затем все остальные символы, сохраняя при этом взаимное расположение символов в каждой из этих двух групп.

2. Дан массив, содержащий от 1 до k символов, за которым следует точка. Напечатать этот текст в файл Word в обратном порядке.

3. Дан непустой массив из цифр. Вывести в файл Excel цифру, наиболее часто встречающуюся в этом массиве.

4. Отсортировать элементы массива X по возрастанию. Результат напечатать в файл Excel.

5. Элементы массива X расположить в обратном порядке. Результат напечатать в файл Excel.

6. Элементы массива X циклически сдвинуть на k позиций влево. Результат напечатать в файл Excel.

7. Элементы массива X циклически сдвинуть на k позиций вправо. Результат напечатать в файл Excel.

8. Преобразовать массив X по следующему правилу: все отрицательные элементы массива перенести в начало, а все остальные - в конец, сохраняя исходное взаимное расположение как среди отрицательных, так и среди остальных элементов. Результат напечатать в файл Excel.

9. Элементы каждого из массивов X и Y упорядочены по неубыванию. Объединить элементы этих двух массивов в один массив Z так, чтобы они снова оказались упоряченными по неубыванию. Результат напечатать в файл Excel.

10. Дан массив из 4 символов. Определить, симметричен ли он, т.е. читается ли он одинаково слева направо и справа налево. Если симметричен, то вывести его в файл Word.

11. Дано два массива. Найти наименьшее среди тех элементов первого массива, которые не входят во второй массив. Напечатать эти наименьшие числа в файл Word.

12. Определить количество инверсий в этом массиве X (т.е. таких пар элементов, в которых большее число находится слева от меньшего: х{i}>х{j} при i<j). Напечатать эти пары в файл.

13. Дан массив из строчных латинских букв. Вывести в файл Word этот массив в алфавитном порядке все буквы, которые входят в этот текст по одному разу.

14. Вывести в файл Excelзаданный массив из k символов, удалив из него повторные вхождения каждого символа.

15. Определить, сколько различных символов входит в заданный текст (текст вводится в файл Word и открывается посредством соответствующей компоненты), содержащий не более k символов и оканчивающийся точкой (в сам текст точка не входит).

Лабораторная работа 5

Знакомство со средой проектирования программных продуктов Visual C++

Цель работы: познакомиться с принципами объектно-ориентированного программирования в средеVisualC++.

Задание:

1) Создать проект программы

2) Визуально спроектировать диалоговую панель

3) Связать элементы управления с событиями

4) Сохранить и выполнить программу

Порядок выполнения работы.

Теперь рассмотрим все пункты по порядку.

1) Вначале запустим Visual C++. Зайдем в меню FILE -> NEW..., выберемтам Project. Ваша панель должна выглядеть теперь так:

Рис.1.

Затем выбираем MFCAppWizard(exe). В окне редактирования ProjectName задаем имя программы и нажимаем OK.

Шаг 1. Теперь выбираем Dialogbased, как показано на рис 2. Вы задали компилятору, что программа ваша будет основана на диалоговых окнах.

Рис. 2.

Шаг 2. В этой панели введите название программы как показано на рис 3 . Рассмотримздесьгруппу "What features would you like to include".

Рис. 3.

Первое включение говорит о использовании справки (небольшой диалоговой панели, которая всплывает при нажатии на иконку).

Теперь щелкаем NEXT.

Шаг 3. Вы видите, что диалоговая панель задает два вопроса:

1) Нужно ли вставлять комментарии в исходный текст, который будет являться каркасом вашей программы?

2) Программа, которую создает для вас MFCAppWizard, будет иметь библиотеку с динамической компоновкой (DLL), а не статической? Dll дает преимущество в том, что EXE файл будет меньшего размера, а рядом к нему будет прилагаться DLL файл.

Выбираем всё как показано на рис 4.

Рис. 4.

Затем нажимаем NEXT и щелкаем FINISH, посмотрите, чтобы было выбрано все, как показано на рис. 5.

Рис.5.

Вы закончили создание проекта программы!

Все каркасные файлы для вашей программы написал VisualC++, с помощью мастера настроек MFCAppWizard. MFC - это вещь очень полезная, с помощью нее можно быстро создавать программы, так как все дежурные файлы он пишет сам, что сильно облегчает работу программиста, ведь не писать стандартный набор текста каждый раз!