Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Добавление в документ Word нужной строки текста.




Поместим на форму компоненты WordDocument, WordApplication и WordParagraphFormat с палитры Servers. Свойство Range представляет собой текст; это может быть как весь текст документа, так и любая его часть. Его пределы задаются двумя (или меньше) параметрами типа OleVariant.

Примеры:

var range1, range2, range3, a, b: OleVariant;

begin range1:= WordDocument1.Range; //весь текст документа

a:= 5;b:= 15; range2:= WordDocument1.Range(a, b); //5-15 символы

range3:=WordDocument1.Range(a); // с пятого символа до конца документа

range2.InsertAfter('MS Word') // вставка текста после выделенного

WordDocument1.Range(a,b).Text; // вставка текста перед выделенным

WordDocument1.Range(a,b).Font.Bold:=1; //жирность шрифта

WordDocument1.Range(a,b).Font.Size:=14; //размер шрифта

WordDocument1.Range(a,b).Font.Color:=clRed; //цвет шрифта

WordDocument1.Range(a,b).Select; // выделить строку

WordDocument1.Range(a,b).Cut; //вырезать строку в буфер

WordDocument1.Range(a,b).Copy; //копировать строку в буфер

WordDocument1.Range(a,b).Paste; //вставить из буфера строку или рисунок

Свойство Range позволяет найти в документе нужную строку.

Пример. Найти слово «picture» и на его место вставить рисунок.

var a, b, vstart, vend: OleVariant; j, ilengy: Integer;

begin ilengy:= Length(WordDocument1.Range.Text);

for j:= 0 to ilengy - 8 do

begin a:= j; b:= j + 7; if WordDocument1.Range(a, b).Text = 'picture'

then begin vstart:= j; vend:= j + 7; end;

end; WordDocument1.Range(vstart, vend).Select;

end;

Свойство Selection представляет собой выделенный фрагмент документа. Если выделения нет, то это - текущая позиция курсора.

Пример:

WordApplication1.Selection.InsertAfter("text1"); //вставить до выделенного

WordApplication1.Selection.InsertBefore("text2");//вставить после выделен.

WordApplication1.Selection.Font.Bold:=1; //жирность шрифта

WordApplication1.Selection.Font.Size:=16; //размер шрифта

WordApplication1.Selection.Font.Color:=clGreen; //цвет шрифта

Убрать выделение цветом можно методом Collapse ({ wdCollapseEnd | wdCollapseStart})

Пример:

var vcol: OleVariant;

begin vcol:= wdCollapseStart; //курсор перед выделенным текстом

WordApplication1.Selection.Collapse(vcol);

Основные отличия новых версий Delphi

Приведем основные отличия новых версий Delphi. Пункт 5.6 подготовлен Е. Виноградовой.

Версия Delphi 6

· Наличие нового окна «Обозреватель дерева объектов (Object Tree View)», которое позволяет просматривать иерархию объектов. Данное нововведение позволяет осуществлять быстрый переход от одного объекта формы к другому. Это удобно в том случае, если, например, компонент имеет небольшой размер.

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

· Введена панель инструментов Internet, которая облегчает разработку приложений для Web-серверов.

· Введена новая страница WebSnap, компоненты которой также служат для создания приложений Web-серверов.

· Обеспечивается поддержка программирования с использованием документов XML.

· Введены новые компоненты, позволяющие использовать XML при разработке приложений баз данных.

· Большинство функций по управлению сервером InterBase переданы программе IBConsole, которая используется вместо программы InterBase Windows Interactive SQL (рис. 5.3.1).

Рис. 5.3.1. Окно IBConsole

 

· Введен новый механизм доступа к данным - dbexpress, обес­пе­чи­ва­ющий быстрый доступ к серверам баз данных SQL.

·

 
 

В палитру компонентов добавлена новая страница InterBase Admin, компоненты которой служат для доступа к базе данных InterBase.

 

· Добавлен ряд новых компонентов с целью упрощения работы с клиентскими наборами данных.

· Компоненты, осуществляющие доступ к данным с помощью Borland Da­ta­base Engine, перенесены на страницу BDE палитры.

В результате стал более удобным доступ к компонентам для работы с базами данных BDE.

· Обновлены компоненты InterBase Express, включая расширенную поддержку событий и поддержку генераторов Interbase, авто­мати­чес­ки устанавливающих значения полей.

· Добавлены новые компоненты на странице Additional, предназ­на­чен­ные для синхронизации управляющих элементов, а также новые компоненты TLabeleEdit, TvalueListEditor, TcomboBoxEx, TcolorBox, предназ­на­чен­ные для управления элементами интерфейса.

· Улучшены и введены новые свойства ряда элементов управления.

· Отсортированы системные цвета, что облегчает их поиск; к стандар­тным шестнадцати цветам добавлены еще четыре.

· Ряд функций перемещен в модуль System, и в то же время много функций из этого модуля перемещены в новый модуль Variants.

· Добавлена коллекция функций для работы с датой и временем в модуле DateUtils.

· Введены новые константы и функции в модуле Math.

· Разрешено определять пользовательские типы данных Variant.

· Введена новая библиотека CLX (межплатформенный вариант биб­лиотеки VCL), позволяющая разрабатывать приложения, функциони­ру­ющие под управлением Windows и Linux.

Версия Delphi 7

· Улучшенная поддержка создания кроссплатформенных прило­жений.

· Введение поддержки использования технологии CASE и языка UML.

· Язык Object Pascal переименован в Delphi, полностью идентичный по синтаксису и семантике.

· Введена инструментальная поддержка CASE-технологий - Model Maker.

· Изменены технологии создания приложений для сети Интернет.

С помощью набора компонентов IntraWeb можно разрабатывать приложения, которые не будут требовать обязательного посредничества Web-сервера между созданными приложениями и браузером пользователя (только для режима Stand Alone Application). Введена поддержка промышленного сервера Apache 2.

· Устранены любые отличия в версиях языка Delphi для самого Delphi и Kylix 3, что значительно упрощает процесс создания кроссплатформенных приложений. Эта попытка унификации VCL и CLX привела к тому, что в стандартную версию Delphi 7 не были включены наборы компонентов Quick Report и FastNet. Эти наборы были заменены компонентами Rave Reports и Indy, хотя для полной совместимости Borland оставила возможность внедрения Quick Report в среду разработки путем подключения специальной библиотеки, которая поставляется вместе с Delphi (только для версии Delphi 7).

Версия Delphi 2005

· Среда разработки теперь имеет интерфейс MDI; модифицировалось также окно «что нового» - теперь это полноценная приветственная страничка.

· Перевести интерфейс в традиционный SDI вид можно следующим образом: Tools/Options/Environment Options/Delphi Options/VCL Designer/ Options/Embedded designer.

· Палитра компонентов теперь размещена внизу справа, при переключении между формой и редактором кода палитра автоматически меняется.

· В Project Manager теперь встроены закладки Model View и Data Explorer.

· Можно вырезать кусок кода и автоматически оформить его как метод или процедуру.

· Можно объявлять переменные или поля класса на ходу (напишите в любом месте кода имя переменной, затем выбрать команду Refactoring/Declare variable из контекстного меню).

· Возможность поиска локальных и глобальных ссылок на объект, поиск объявления объекта.

· Автокомментирование строки клавишами «Ctrl+/».

· Можно свернуть любой блок кода секции Unit, описания класса, текста процедур, функций и т.д.

· Изменена справочная система. Теперь она имеет интерфейс, схожий с интерфейсом справочной системы Windows XP.

· У компилятора Delphi появилась возможность использовать Inline‑кода. Теперь, если процедура или функция имеют директиву Inline, это заставит компилятор попытаться вставить в место, где эта процедура используется, не вызов, а код тела процедуры.

· Для компилятора Delphi for.Net добавлена возможность включения потенциально небезопасного кода в приложения.Net.

· Появилась возможность использовать в именах типов и переменных символы Unicode.

· Изменилась работа с точками останова. Появилась возможность, не удаляя саму точку, отключить ее, пометив Disable.

· В среду интегрирован новый Data Explorer, который содержит как средства просмотра БД, так и ряд инструментов для редактирования.

 


Глава 6. C++ Builder

С++Builder ‑ это Delphi, в котором Delphi (Паскаль) заменен на C++ [6]. Язык С [3] был разработан в 1972 г. сотрудником фирмы AT&T Bell Labo­ratories Деннисом Ритчи в рамках проекта создания опе­ра­цион­ной сис­темы Unix. В настоящее время он является универсальным язы­ком прог­рам­мирования общесистемных программных средств (опе­рационных и сетевых систем, СУБД, текстовых, таб­личных и графических редакторов и др.) и прикладных задач. Современной версией языка С является C++ (автор - Б. Страуструп) [6]. Язык С является подмножеством C++.

Допускается создание консольного приложения (командой File/ New/Console Wizard). Это приложение выполняется под управлением DOS и поз­во­ляет использовать функции непосредственного ввода (scanf) и вывода (printf) данных на консоль, не используя визуальные средства. Это поз­во­ляет в десятки раз уменьшить размер исполняемого Exe-файла и использовать в С++ Builder программы, написанные ранее на языке С или C++, которые выполнялись под DOS.

Для консольного приложения обычно требуются дирек­тивы:

#include <stdio.h> // подключение модуля стандартного ввод-вывода

#include <conio.h> // подключение модуля ввод-вывода на консоль

#include <stdlib.h> // стандартная библиотека общего назначения

#include <fstream.h>// стандартная библиотека ввода-вывода потоков в С++

Большинство приведенных в этой главе примеров оформлены в ви­де кон­сольных приложений. Их можно легко изменить и перевести в обыч­ные приложения (например, оформить в виде функции обработки события Click нажатия кнопки Button), заменив вывод функцией printf на вывод в метку Label или в массив строк объекта Memo (Memo1->Lines->Add(str)), фун­к­цию ввода scanf ‑ на ввод из полей Edit и удалить фун­к­цию задержки работы программы getch.

Внимание! В консольных приложениях используется кодировка сим­­­волов, принятая в DOS. Это не позволяет выводить без допол­нитель­ной перекодировки текст, набранный при создании консольного прило­же­ния в С++ Builder.

Для быстрого освоения и перехода из Delphi в C++ Builder и обратно приведем основные общие черты и различия между ними.

Основные общие черты C++ Builder и Delphi

· Единая библиотека визуальных компонентов (VCL) с одинаковым набором и обозначениями компонентов, их свойств, методов и событий.

· Практически одинаковая технология и единая визуальная среда быстрой раз­­ра­ботки приложений.

· много одинаковых функций (например, преобразования данных).

Основные отличия C++ Builder от Delphi

· Используются различные языки C++ и Delphi соответственно.

· Прописные и строчные буквы в С++ различаются, что требует от пользова­теля соблюдения регистров при написании иден­ти­фи­ка­торов.

· Для функций без параметром указываются круглые скобки.

· Свойствам Caption и Text можно присваивать текстовые, числовые и датные значения, а не обязательно только тек­сто­вые, как в Delphi.

· Операторы прис­­ваивания и сравнения на равенство записываются в виде одного и двух знаков равенства, соответственно, вместо «:=«и «=«.

· Символьные константы заключаются в кавычки (fam=«Иванов»).

· Директивы компиляции задаются в виде #pragma <значение>.

· Для ссылки на объект, созданный из компонента VCL используется не точка, а косвенная ссылка в виде стрелочки из двух символов («->«) или прямая ссылка в виде (* <имя объекта> ).

Пример: Button1->Caption=«Выход» или (*Button1).Caption=«Выход»

· Для включения в приложение модуля требуется выполнение коман­ды File/Include Unit....

· Условные выражения в командах if, while, switch заключаются в круг­лые скобки и логические операции имеют меньший приоритет, чем опе­рации сравнения.

· Оператор присоединения With отсутствует.

· Можно использовать библиотеку фундаментальных классов MFC.

· Используя ключевое слово as, в Delphi можно написать:

procedure TForm1.Button1Click(Sender: TObject);

begin with Sender as TButton do Caption:='Выход'; end.

· Слова as нет в C++ Builder, но есть оператор динамического преоб­ра­зо­­вания типа dynamic_cast, который не связан с исключениями. Ис­поль­зуя его, можно записать последний пример в C++ Builder в виде:

void __fastcall TForm1::Button1Click(TObject *Sender) // знак:: см. в п. 6.6.1

{ TButton* Button=dynamic_cast <TButton*> (Sender);

if (Button) Button1->Caption=«Выход»; }

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...