Обзор остальных возможностей
Программирование для Интернет: создание собственного броузера; загрузка и передача файлов и документов; прием и отправка электронной почты, кодирование файлов; работа с группой новостей; обмен текстовыми сообщениями и двоичными файлами; передача данных по протоколу UDP; создание собственных протоколов и серверов Интернет; создание распределенных многопользовательских приложений для Интернет и локальных сетей TCP/IP; создание Web‑приложения доступа к базе данных; использование активных форм в Интернете [4].
Работа с панелью управления Windows: создание заготовки апплета, регистрация и отладка библиотеки CPL [2; 7].
Управление работой офисных приложений: офисные программы как серверы автоматизации COM; загрузка и применение [2; 7].
Установка и развертывание приложений: работа с системным реестром; настройка версий приложения; локализация приложений [2; 7].
Поддержка работы группы разработчиков больших приложений: система TeamSource [2; 7].
Формирование отчетов, диаграмм и анализа данных пакетом Crystal Reports
Пакет Crystal Report (версии 10) является самым мощным современным автономным средством формирования выходных документов: отчетов, диаграмм и оперативного анализа данных (OLAP‑технологии). Достоинствами пакета являются его широкие возможности, визуальность, универсальность (возможность выбирать информацию из баз данных с различными СУБД), простота подключения (через ActiveX‑элементы командой Componet/Import ActiveX Control) и использования. Выходные документы наиболее часто подвержены изменениям, это приводит к необходимости корректировать тексты приложений и заново их создавать, что весьма трудоемко. Если выходные документы подготовить автономно средствами этого пакета и включить вызов процедур формирования документов в меню приложения, то документы можно корректировать автономно, не изменяя приложения.
Работа с Excel
Приведем примеры работы с Excel:
Пример создания новой книги и записи в нее данных.
// на форме размещаются объекты: Button (Button1) и Edit (Edit1)
uses ComObj, ActiveX;
procedure TForm1.Button1Click(Sender: TObject);
var xlap,xl:variant;
begin
if SaveDialog1.Execute then // открыть окно диалога
begin
xlap:= CreateOLEObject('Excel.Application'); // создать OLE-объект
xlap.workbooks.add; // создать новую книгу
xlap.visible := true;
xl:=xlap.Workbooks[1].Sheets[1]; //первая страница первой книги
xl.Cells[1,1].Value:=edit1.text; // записать в ячейку текст из Edit1
// сохранить книгу под заданным в диалоге названием
xlap.ActiveWorkbook.SaveAs(SaveDialog1.FileName);
xlap.quit; // выход из Excel
end;
end;
Пример создания новой таблице в Excel 2000:
uses ComObj, ActiveX;
var Row, Col: integer; DestRange: OleVariant; Excel: Variant;
begin
Excel := CreateOleObject('Excel.Application.9'); //создать OLE-объект
Excel.Visible := True;
Excel.WorkBooks.Add; //создать новую таблицу
//Поместить слово тест в диапазон ячеек
Excel.ActiveSheet.Range['A2', 'B3'].Value := 'Тест';
//Или число
Excel.ActiveSheet.Range['A4', 'B5'].Value := 42;
//А вот так задаётся формула
Excel.ActiveSheet.Range['A10', 'A11'].Formula := '=RAND()';
//Можно задавать номера ячеек и столбцов
Excel.ActiveSheet.Cells.Item[1, 1].Value := 'Первая ячейка';
Row:=1; Col:=3;
Excel.ActiveSheet.Cells.Item[Row, Col].Value := 'Другая ячейка';
//Можно скопировать данные из одного диапазона ячеек в другой
DestRange := Excel.Range['D6', 'F10'];
Excel.Range['A1', 'C5'].Copy(DestRange);
//Можно задавать параметры шрифта в определенной ячейке
Excel.Range['A2', 'A2'].Font.Size := 20;
Excel.Range['A2', 'A2'].Font.FontStyle := 'Bold';
Excel.Range['A2', 'A2'].Font.Color := clFuchsia;
Excel.Range['A2', 'A2'].Font.Name := 'Arial';
//Можно еще и так изменить цвет диапазона ячеек
Excel.Range['B2', 'C6'].Interior.Color := RGB(223, 123, 123);
end;
Пример открытия и закрытия таблицы:
uses ComObj, ActiveX;
var Excel: Variant; WBk : OleVariant; SaveChanges: OleVariant;
begin
Excel := CreateOleObject('Excel.Application.9');
Excel.Visible := True;
//Открыть существующую книгу
WBk := Excel.WorkBooks.Open('C:\Test.xls');
...
//Закрыть книгу с сохранением
WBk.Close(SaveChanges := True);
Excel.Quit;
end;
Работа с Word
Поместите на форму компонент WordApplication и задайте свойство ConnectKind. Оно может принимать значения: ckRunningOrNew (подключение к уже запущенному серверу Word), ckNewInstance (приложение обязательно запустит для своих целей собственный экземпляр сервера), ckRunningInstance (приложение подключается только к работающему экземпляру сервера), ckRemote (соединение с сервером на удаленном компьютере).
За соединение с сервером Word отвечает метод Connect. Тип соединения задается свойством ConnectKind.
Пример соединения с выполняющимся сервером Word (тип соединения установим в ckRunningInstance):
try WordApplication1.Connect;
except application.messagebox('приложение будет закрыто', 'ошибка!', 0);
application.Terminate;
end;
Для отсоединения используется метод Disconnect.
Рассмотрим основные свойства сервера.
AutoConnect, AutoQuit - позволяют производить соединение (True) с Word и отсоединение от него автоматически соответственно. Однако постоянно держать соединение с Word обычно не требуется.
Visible=True - MS Word во время нашей работы с ним будет видим. Обычно работа с документами производится в невидимом режиме, а потом показывают на экране уже готовый результат. Но на этапе отладки удобнее видеть своими глазами, что делает программа.
Version - версия MS Word установленного на машине.
Documents - позволяет открыть документ или создать новый, обеспечивает доступ к уже открытым документам.
Пример открытия документа (предварительно описываем переменную FileName типа OleVariant и присваиваем ей имя файла):
WordApplication1.Connect;
WordApplication1.Documents.Open(FileName,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam);
WordDocument1.ConnectTo(WordApplication1.ActiveDocument);
Пример создания нового документа:
WordApplication1.Connect;
WordApplication1.Documents.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam);
WordDocument1.ConnectTo(WordApplication1.ActiveDocument);
При наличии нескольких открытых документов можем переключаться между ними, но не прямо, а через «активное» окно Word.
Пример:
var vid: OleVariant;
begin vid := 2;
WordApplication1.Windows.Item(vid).Activate;
WordDocument1.ConnectTo(WordApplication1.ActiveDocument);
При этом переменная vid может принимать значения от 1 до WordApplication1.Documents.Count. Далее можем работать с указанным документом. Нумерация документов происходит в порядке их открытия.
Можно отключить проверку правописания и грамматики:
WordApplication1.Options.CheckSpellingAsYouType := False;
WordApplication1.Options.CheckGrammarAsYouType := False;
Чтобы выгрузить Word, вызываем метод Quit.
Компонент WordDocument предназначен для работы с документами. Для соединения документов служит метод ConnectTo. Если открыт только один документ, то соединяемся с «активным» документом.
Для сохранения документа используем метод Save [(<новое имя>)]
Пример: filename := 'd:\test.doc'; WordDocument1.Save(filename);
Если нужно записать документ не только под другим именем, но и в другом формате, используем Save с двумя параметрами:
WordDocument1.SaveAs(FileName, FileFormat).
Переменная FileFormat типа OleVariant может принимать значения: wdFormatDocument (документ Word), wdFormatDOSText (простой текст), wdFormatRTF (файл RTF). Полный список форматов можно найти в заголовочном файле, введя в строку поиска «Format».
Можно для сохранения использовать и метод Close.
Пример:
var vschange: OleVariant;
begin vschange := wdSaveChanges; //режим сохранения
WordDocument1.Close(vschange);
Константа сохранения изменений может принимать значения: wdSaveChanges (сохранить изменения), wdDoNotSaveChanges (без сохранения), wdPromptToSaveChanges (при выходе стандартный диалог сохранения изменений).
Метод Close можем вызвать и без параметров. Но если в документ вносились какие-то изменения, будет выдан стандартный запрос на их сохранение.
Часто перед работой с Word возникает необходимость проверить, нет ли на машине открытых документов, сохранить их и закрыть во избежание порчи:
Var i, doccount: Integer;
begin doccount := WordApplication1.Documents.Count;
for i := 1 to doccount do
begin WordDocument1.ConnectTo(WordApplication1.ActiveDocument);
WordDocument1.Save; WordDocument1.Close;
end;
Дата добавления: 2016-03-22; просмотров: 627;