Добавление в документ 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 Database 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 Laboratories Деннисом Ритчи в рамках проекта создания операционной системы 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=«Выход»; }
Дата добавления: 2016-03-22; просмотров: 1954;