Програмування для Word з Delphi

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Мордовський ДЕРЖАВНИЙ УНІВЕРСИТЕТ
ІМЕНІ Н.П. Огарьова
Світлотехнічний факультет
Кафедра світлотехніки
Курсова робота
Програмування для Word з Delphi
САРАНСЬК 2008

Реферат
Курсова робота містить 23 сторінки, 9 використаних джерел, 1 рисунок, 2 таблиці і 1 додаток.
У курсовій роботі використовуються наступні ключові слова:
COM, OLE, сервер автоматизації, інтерфейс, IDispatch, об'єкт, сімейство.
Об'єктом дослідження є технологія взаємодії додатків з текстовим редактором Microsoft Word.
У процесі роботи використовувалася навчальна література по програмуванню в середовищі Borland Delphi для Windows.
У результаті дослідження: вивчена методика створення додатків передають дані в Microsoft Word.

Зміст
Введення
1. Основи COM-технології
1.1 COM-об'єкти
1.2 Виклик методів COM-об'єктів
1.3 Створення і використання примірників серверів автоматизації
2. Експорт інформації в Microsoft Word
2.1 Структура програми Microsoft Word
2.2 Запуск сервера
2.3 Взаємодія з сервером на рівні документа
2.4 Безпосередній висновок інформації
2.5 Форматування текстової інформації
2.6 Використання закладок
2.7 Управління додатком
Висновок
Список використаних джерел
Піложеніе 1

Введення
Мета курсової роботи полягає у вивченні технологій висновку даних з додатків створених у середовищі Borland Delphi в інші поширені програми, такі як Microsoft Office і, зокрема, Microsoft Word. Середа Borland Delphi надає широкі можливості виведення інформації на принтер за допомогою об'єкту TPrinter. Однак більшість завдань друку зводиться до висновку тексту або таблиць. При цьому з одного боку, в програмах доводиться реалізовувати складні алгоритми форматування тексту при виведенні, а з іншого боку, такі завдання дублюють широко поширені пакети, в яких дані можливості вже реалізовані. Більш того, виведення інформації на друкуючий пристрій жорстко визначає вид одержуваних документів, на який користувач не може вплинути. При цьому з розвитком комп'ютерної техніки друковані документи стають все менш затребуваними у зв'язку з широким використанням для обміну інформацією електронної пошти та факсів. У таких умовах доцільно наділяти програмні продукти можливостями збереження інформації в загальноприйнятих форматах, таких, наприклад, як формат текстових документів RTF, тим більше, що Delphi частково підтримує такі можливості. Однак робота з такими форматами все-таки не проста, і вимагає від розробника додаткових зусиль, особливо в умовах швидкого оновлення стандартів на формати представлення даних.
Другий підхід до підвищення гнучкості виведення інформації підтримується наявністю в Windows OLE (Object Linking and Embedding - зв'язування і впровадження об'єктів), що дозволяє запускати свої додатки і передавати їм дані, викликаючи методи цих додатків. Технологія OLE є частиною технології СОМ - визнаного стандарту для виконання подібних операцій, і все більше програмних продуктів підтримують такі можливості. Винятком не є і група продуктів Microsoft Office, кожен додаток якої може бути використано з Delphi-додатків для передачі в них даних.

1. ОСНОВИ COM-ТЕХНОЛОГІЇ
1.1 COM-об'єкти
СОМ (Component Object Model - Модель багатокомпонентних об'єктів) - є об'єктно-орієнтованої концепцією, яка описує правила побудови класів, званих СОМ-об'єктами, з метою забезпечення взаємодії між ними незалежно від мови, на якому реалізовані дані класи, і середовища, в якій виконуються додатки, що містять їх. Об'єкти СОМ реалізуються у спеціальному двійковому форматі, що є фактично описом класу, і не залежить від мови розробки, і надають свою функціональність (дозволяють викликати свої методи) через набір інтерфейсів. Кожен СОМ-об'єкт реалізує як мінімум один інтерфейс IUnknown виконує наступні дії:
1. Підтримка лічильника екземплярів об'єкта за допомогою методів AddRef, що викликається при створенні екземпляра класу для збільшення значення лічильника, і Release, що викликається при руйнуванні примірники для зменшення значення лічильника;
2. Надання посилання на інтерфейс, заданий його унікальним ідентифікатором, і підтримуваний СОМ-об'єктом, за допомогою методу Query Interface.
Для ідентифікації СОМ-об'єктів застосовуються глобальні унікальні ідентифікатори, що представляють собою 128-розрядні цілі числа, записувані в наступному форматі, де замість символу 'х' вказується шістнадцяткова цифра:
['{Хххххххх-хххх-хххх-хххх-хххххххххххх}']

Наприклад, головне додаток графічного редактора Adobe Photoshop має такий ідентифікатор:
{43191D98-5D34-4103-BE42-226A55C2312A}
1.2 Виклик методів СОМ-об'єктів
СОМ-об'єкти можуть використовуватися або всередині програми (такі СОМ-об'єкти називаються внутріпроцесснимі), або у вигляді виконуваних модулів (зовнішні СОМ-об'єкти). Додаток (додаток-клієнт), що використовує СОМ-об'єкт, викликає метод, заявлений в будь-якому інтерфейсі цього СОМ-об'єкту (об'єкта сервера). Виклик проводиться по імені з передачею необхідних параметрів, незалежно від типу використовуваного сом-об'єкту (зовнішній чи внутріпроцессний). Зв'язування виклику методу з його адресою може бути виконано двома способами:
1. Через інтерфейс IDispatch.
2. Через таблицю віртуальних методів.
Таблиця віртуальних методів будується для СОМ-об'єкту на етапі компіляції програми, яка його використовує, і володіє такими перевагами, як висока швидкість роботи і відсутність помилок в передачі параметрів, так як синтаксис виклику перевіряється компілятором. Такий вид зв'язування називається раннім, за аналогією з раннім зв'язуванням викликів методів для екземплярів звичайних класів Delphi. Для раннього зв'язування необхідна наявність бібліотеки типів, що містить інформацію про сигнатурі методів.
На рис 1. додаток-клієнт «Приложение1» звертається до методу «Метод 2» сом-об'єкту безпосередньо, використовуючи механізм раннього зв'язування. Для цього адресу методу повинен бути внесений в таблицю віртуальних методів додатки.
Другий варіант зв'язування - пізніше зв'язування - здійснюється за допомогою використання інтерфейсу IDispatch. СОМ-об'єкти, що реалізують інтерфейс IDispatch, називаються серверами автоматизації. Саме сервери автоматизації і цікавлять нас у контексті виведення інформації за межі програми.
Зауважимо, що приналежність сом-об'єкту до серверів автоматизації не забороняє можливість раннього зв'язування, навпаки, інтерфейс IDispatch надає необхідну додатком інформацію про типи.
Інтерфейс IDispatch призначений для використання сервера автоматизації в умовах пізнього зв'язування і має різні методи для визначення інформації про типи. Також в інтерфейсі IDispatch заявлений метод Invoke, якому передається ім'я методу для виклику і список необхідних параметрів. На цьому методі і побудовано механізм використання серверів автоматизації з Delphi-програм. Механізм виклику методу об'єкта через метод Invoke інтерфейсу IDispatch, реалізованого цим об'єктом, зображений на рис. Додаток-клієнт «Додаток 2» звертається до методу invoke, який визначає метод «Метод 2», який запросила додатком, і викликає його.
Метод invoke має безліч складних параметрів, однак він не використовується безпосередньо розробником прикладного програмного забезпечення. Виклики даного методу додаються в програму автоматично під час компіляції.

Рис 1. Різні механізми виклику методів COM-об'єктів.
1.3 Створення і використання примірників серверів автоматизації
Для створення сервера автоматизації використовується функція CfeateOleObject, описана в модулі Comobj наступним чином:
function CreateOleObject (const ClassName: string): IDispatch;
Функція видає посилання на інтерфейс IDispatch об'єкта, зареєстрованого в реєстрі Windows під ім'ям ClassName. Для визначення назви класу слід вивчити документацію до програмного продукту, що надає сервер автоматизації. Для програми Microsoft Word таким ім'ям є «Word.Application», а для Microsoft Excel - «Excel.Application». Аналогічні назви класів мають і інші компоненти Microsoft Office.
Якщо сервер автоматизації вже запущений, то посилання на нього можна отримати за допомогою функції GetActiveOleObject:
function GetActiveOleObject (const ClassName: string): IDispatch;
Якщо при виклику методу GetActiveOleObject система не може виявити запущену версію заданого сервера автоматизації, то буде порушена виняткова ситуація класу EOleError.
Посилання, які повертають функції GreateOleObject і GetActiveOleObject, слід зберігати в змінних для подальшого доступу до створеного або отриманого об'єкту. Незважаючи на те, що тип посилання визначений як IDispatch, змінна, в яку це посилання зберігається, повинна мати тип Variant. Це пов'язано з тим, що з даної змінної будуть викликатися методи сервера автоматизації, які не описані в інтерфейсі IDispatch.
Var
Object: Variant;
Object: = CreateOleObject ('Word.Application');
Використання примірника сервера автоматизації, тобто виклик його методів, здійснюється за допомогою конструкцій, звичайних для виклику методів у Delphi:
<Посилання на сервер>. <Назва методу> (<Список параметрів>);
Однак механізм, використовуваний для реального виклику, істотно відрізняється від виклику методів Delphi-класів. Назва методу і список його параметрів запаковуються у спеціальну структуру, яка потім передається методу invoke сом-об'єкту через посилання, отриману при виконанні функції CreateOleObject. Метод invoke визначає, який саме його метод повинен бути викликаний, виконує його, запаковує результат і повертає його в викликала програму.
Об'єкти автоматизації підтримують також і доступ до властивостей через спеціальним чином описані методи.
Для руйнування структур даних, пов'язаних з використанням СОМ-об'єкт в програмі, слід присвоїти посиланням на нього значення Unassigned. Дана операція не закриває запущений сервер автоматизації:
Var
Object: Variant;
Object: = CreateOleObject ('Word.Application');
Object: = Unassigned; / / Руйнування програмних структур

2. ЕКСПОРТ ІНФОРМАЦІЇ У MICROSOFT WORD
2.1 Структура програми Microsoft Word
Програми, що входять до складу Microsoft Office, мають ієрархічну об'єктну структуру. Структура кожного додатка складна і істотно відрізняється від структури інших програм, що обумовлено різною спрямованістю самих додатків. Об'єкти ієрархій Microsoft Office містять в собі методи, кількість яких приблизно дорівнює кількості дій, підтримуваних при редагуванні документів, тому їх число дуже велике. Ієрархічна структура об'єктів відображає уявлення даних, редагованих в тому чи іншому додатку. Структура Microsoft Word включає в себе об'єкт верхнього рівня Application, керуючий безпосередньо додатком, і вкладені в нього об'єкти типу Document що надають доступ до документів, відкритим в даний момент. При додаванні чергового об'єкта Document стороннім додатком за допомогою методів сервера автоматизації Microsoft Word відкриває черговий документ. Аналогічно об'єкти типу Document можуть містити в собі об'єкти типу Paragraph, що представляють собою посилання на абзаци тексту. Доступ до об'єктів різного рівня з програми-клієнта, реалізованої, наприклад, на Delphi, здійснюється одноманітно, через посилання на вищі в ієрархії об'єкти. Об'єкти одного рівня і призначення, наприклад, об'єкти типу Document, об'єднуються в одну властивість, так зване сімейство, яке має назву типу об'єктів у множині. Таким чином, об'єкти типу Document об'єднуються у властивість Documents.
Такі властивості є, фактично списками, для яких можна визначити кількість елементів у кожному з них (властивість Count) і отримати доступ до елемента за допомогою функції Item, яка отримує в якості параметра номер об'єкта у списку. Елементи нумеруються від одиниці. Для передачі параметрів в методи об'єктів автоматизації та присвоєння значень їх властивостям використовується спеціальний тип даних OleVariant, основна відмінність якого від типу Variant полягає в його сумісності з операційною системою, яка і підтримує технологію СОМ. Отже, для експорту інформації в Microsoft Word з використанням сервера автоматизації слід:
1. Створити екземпляр сервера автоматизації «Word.Application» (запустити Word) або отримати посилання на вже запущений екземпляр.
2. Створити новий документ.
3. Вивести інформацію в створений документ.
4. Зруйнувати структури, пов'язані з примірником сервера автоматизації в програмі, а також посилання на елементи його об'єктної ієрархії.
2.2 Запуск сервера
Створення або отримання посилання на екземпляр сервера автоматизації виконується за допомогою функцій CreateOleObject або GetActiveOleObject відповідно. У деяких випадках доцільно спочатку намагатися підключитися до існуючого сервера, а в разі невдачі запустити власну версію.
2.3 Взаємодія з сервером на рівні документа
Для створення нового документа слід додати елемент у сімейство Documents об'єкта «Word.Application» за допомогою функції Add, яка поверне посилання на створений документ:
Add (Template: String, NewTemplate: Boolean): Document;

Рядковий параметр Template визначає, на основі якого шаблону повинен бути створений новий документ, а параметр NewTemplate вказує на те, що створюваний документ сам повинен бути шаблоном. Якщо метод викликається без параметрів, то новий документ створюється на основі шаблону Normal (звичайний) і є звичайним документом.
Посилання на знову створений документ, що повертається методом Add, слід зберегти в змінній типу Variant для подальшого доступу до документа з метою виведення інформації в нього. При необхідності виведення інформації в складні форми новий документ можна створити на основі деякого «шаблону» - раніше створеного і збереженого документа. Параметри можуть передаватися методом Add у звичайній формі.
Закрити документ після закінчення виведення інформації в нього можна за допомогою методу close.
2.4 Безпосередній висновок інформації
Виведення інформації в Microsoft Word аналогічний роботі користувача в редакторі і деяким чином емулює її. Так, за допомогою об'єкта Selection, що відображає поточне виділення в документі, підтримуються команди введення тексту і настроїти її установки. Якщо явного виділення не присутній, то об'єкт Selection відображає місцезнаходження текстового курсору. Зауважимо, що об'єкт Selection належить об'єкту «Word.Application», а не об'єкту Document. Для виведення інформації в об'єкт Selection використовується його метод TypeText. Для введення символу переведення рядка можна скористатися методом TypeParagraph об'єкта Selection. При послідовному поданні інформації зміна автоматично встановленого виділення звичайно не потрібно, однак, якщо виникне така необхідність, можна встановити параметри виділення за допомогою методів Move, MoveRight (змістити виділення вправо) і MoveLeft (змістити виділення вліво):
Move (Unit: Integer, Count: Integer);
MoveRight (Unit: Integer,-Count: Integer, Extend: Boolean = False);
MoveLeft (Unit: Integer, Count: Integer, Extend: Boolean = False);
Методи зрушують виділення на заданий параметром Count кількість одиниць. Значення параметра може бути позитивним, або негативним. У випадку методу Move знак параметра Count визначає напрямок зсуву виділення. Негативне значення параметра вказує на зміщення вліво, а позитивне - вправо. Методи MoveRight і MoveLeft спочатку налаштовані на зміщення виділення в задану сторону (вправо і вліво відповідно), тому від'ємне значення параметра Count у їх виклик просто змінює напрямок зміщення виділення. При використанні методів Move, MoveLeft і MoveRight, виділення, якщо воно існувало до їх виклику, знімається. Цього можна уникнути у функціях MoveLeft і MoveRight, якщо в якості значення необов'язкового параметра Extend задати значення True (за умовчанням встановлюється False).
Параметр Unit визначає одиницю зміщення виділення. Деякі його значення, вказані в таблиці 1.
Таблиця 1. - Деякі значення параметра Unit.
Значення
Одиниця зміщення виділення
1
Один символ
2
Одне слово
3
Одна пропозиція
4
Один абзац
5
Один рядок
9
Один стовпчик таблиці, якщо виділення знаходиться в таблиці
10
Один рядок таблиці, якщо виділення знаходиться в таблиці
12
Одна комірка таблиці, якщо виділення знаходиться в таблиці

І, нарешті, щоб просто скинути виділення, не змінюючи його початкового положення, можна скористатися методом Collapse об'єкта Selection.
2.5 Форматування текстової інформації
Для форматування поточного виділення, через об'єкт Selection можна отримати доступ до об'єкта Font, що визначає характеристики шрифту даного виділення. Основні властивості об'єкта Font перераховані в таблиці 2.
Таблиця 2. - Основні властивості об'єкта Font.
Назва властивості
Тип
Опис
Name
String
Назва шрифту
Size
Integer
Розмір шрифту
Bold
Boolean
Наявність атрибуту «Напівжирний»
Italic
Boolean
Наявність атрибуту «Похилий»
StrikeThrough
Boolean
Наявність атрибуту «Перекреслений»
Subscript
Boolean
Символи в режимі «Нижній індекс»
Superscript
Boolean
Символи в режимі «Верхній індекс»
SmallCaps
Boolean
Усі символи рядкові
AllCaps
Boolean
Усі символи заголовні
Документ, з точки зору текстової інформації, складається з набору (сімейства) абзаців, представлених об'єктами Paragraph, доступ до кожного з яких можливий через функцію item об'єкта-сімейства Paragraphs. Форматування параграфа, редагування якого проводиться в даний момент, здійснюється через властивість ParagraphFormat об'єкта Selection, а для об'єктів типу Paragraph можливості форматування доступні безпосередньо. Доступні установки для редагування абзацу включають вирівнювання, наявність буквиці (першої літери абзацу спеціального накреслення), відступи першого рядка від межі абзацу та відступи самої межі абзацу від країв сторінки, назва стилю абзацу, і безліч інших параметрів, використовуваних в Word. Ми розглянемо дві часто використовуваних налаштування абзацу - відступи абзацу та його вирівнювання.
Відступи абзацу задаються властивостями Leftindent (відступ зліва), Rightlndent (відступ праворуч) і FirstLinelndent (відступ першого рядка від лівої межі абзацу) об'єкта ParagraphFormat. Значення відступів задаються числами в умовних одиницях, які можна отримати з сантиметрів або дюймів за допомогою методів об'єкту «Word.Application» CentimetersToPoints і InchesToPoints.
Вирівнювання редагованого (поточного) абзацу виконується за допомогою властивості Alignment об'єкта ParagraphFormat. Вирівнювання всіх абзаців документа можна виконати через однойменне властивість об'єкта-сімейства Paragraphs. Як значення, що визначають вирівнювання, можуть використовуватися: 0 (вирівнювання по лівому краю), 1 (вирівнювання по центру), 2 (вирівнювання по правому краю) і 3 (вирівнювання по ширині).
Для установки однакового вирівнювання для всіх абзаців можна скористатися об'єктом-сімейством Paragraph.
2.6 Використання закладок
Microsoft Word підтримує можливість роботи з закладками - неотображаемимі атрибутами документа, управління якими (додавання, видалення і перехід на закладку) здійснюється за допомогою діалогу пункту головного меню Вставка → Закладка. Додаток, який є OLE-клієнтом, може звернутися до сімейства Bookmarks закладок для доступу до кожної з них, або до об'єкта Selection для переходу (переміщення виділення) на закладку, задану ім'ям.
Для переходу на закладку слід використовувати метод Goto об'єкта Selection.
Selection. GoTo (What: Integer; Name: String);
Параметр What вказує тип елемента, на який слід переміститися. Параметр Name задає назву закладки, зазначене при її додаванні до документа.
Використання закладок істотно спрощує підготовку уніфікованих документів, наприклад, анкет, в яких велика частина інформації є допоміжною, а на її основі слід заповнити які-небудь поля даних. Місця, куди повинна бути введена інформація, можна помітити закладками, за якими Delphi-програма буде переміщати виділення з метою виведення інформації методом TypeText об'єкта Selection.
2.7 Управління додатком Microsoft Word
Додаток Microsoft Word, яке є сервером автоматизації, може бути присутнім на екрані в момент звернення до нього клієнта, а може бути, приховано. Видимість застосування визначається логічним властивістю Visible. Управління видимістю програми може бути необхідно, щоб користувач не зміг перешкодити процесу експорту інформації. Програми Office влаштовані таким чином, що їм все рано, хто вводить інформацію - стороннє додаток через сервер автоматизації або користувач за допомогою інтерфейсу. Таким чином, якщо Delphi-додаток здійснює тривалий експорт інформації, використовуючи метод TypeText об'єкта Selection, користувач має можливість переключитися у вікно Word і, наприклад, змінити положення текстового курсору. У результаті таких дій зміниться стан об'єкта Selection, і інформація буде виведена не по порядку, а з того місця, яке вказав користувач. Для того, щоб заборонити користувачеві змінювати виділення під час процесу експорту інформації, можна приховати вікно програми з екрану на цей час.
Ще одна цікава особливість використання сервера автоматизації Microsoft Word випливає з належності об'єкта Selection до об'єкту «Word.Application», а не до об'єкта Document, з яким працює програма. Якщо посилання на сервер автоматизації не створена в програмі функцією CreateOleObject, а отримана з функції GetActiveOleObject, то перемикання користувачем в інше вікно програми Word, який використовується програмою, також призведе до зміни сенсу властивості Selection. Після перемикання в інший документ дане властивість буде визначати виділення в цьому документі, що є неприпустимим, тому що в нього буде здійснюватися висновок інформації. Для уникнення таких проблем не слід використовувати сервера автоматизації, отримані функцією GetActiveOleObject, якщо висновок інформації може зайняти тривалий час. Зауважимо, що навіть виведення декількох рядків може дати користувачеві можливість перемикання між додатками, тому більш правильно створювати новий сервер автоматизації при використанні методів об'єкту «Word.Application» взагалі.

Висновок
В операційній системі Windows додатку існують не ізольовано, користувачі, як правило, бажають, щоб вони взаємодіяли. Буфер обміну Windows пропонує простий спосіб взаємодії між додатками, оскільки з його допомогою користувачі можуть копіювати і вставляти дані. Проте все більше і більше програм пропонують інтерфейс автоматизації, що дозволяє управляти ними з інших програм. Крім очевидної переваги програмованої автоматизації в порівнянні з ручними операціями користувача, ці інтерфейси повністю нейтральні по відношенню до мови програмування, що використовується для їх написання. Технологія COM і OLE дозволяють розробникам повною мірою використовувати всі засоби вже створених програм. Використовуючи їх, розробники розширюють функціональність своїх додатків, прикладаючи до цього мінімум зусиль і часу. До того ці технології надають можливість експортувати дані в загальноприйняті і поширені формати, що в кінцевому підсумку робить створене додаток більш зручним і корисним.
У даний момент Microsoft Word є найбільш потужним і поширеним текстовим редактором. Включення його можливостей у додатки дозволяє створювати по-справжньому функціональні та корисні програми працюють з текстовими даними.

Список використаних джерел
1. Сухарєв М.В. Основи Delphi. Професійний підхід. - СПб.: Наука і Техніка, 2004. - 600 с.: Іл.
2. Кент М. Delphi 7: Для професіоналів. - СПб.: Пітер, 2004. - 1101 с.: Іл.
3. Флен М.Є. Біблія Delphi. - СПб.: БХВ-Петербург, 2004. - 880 с.: Іл.
4. Флен М.Є. Програмування в Delphi очами хакера. - СПб.: БХВ-Петербург, 2004. - 368 с.: Іл.
5. Тейксейра С., Пачеко К. Delphi 5, Керівництво розробника. в 2 т. - СПб.: Питер, 2005.
6. Стівенс Р. Delphi. Готові алгоритми / Пер. з англ. - М.: ДМК Пресс, 2001. - 384.: Іл.
7. Стівенс Р. Delphi. Готові алгоритми / Пер. з англ. Мерещука П. А. - 2-е
вид., стер. - М.: ДМК Прес; СПб.: Пітер, 2004. - 384 с.: Іл.
8. http://www.demo.ru
9. Borland Delphi 2005. Електронний самовчитель. ТОВ «ИДДК», 2005.

Додаток 1
Створити додаток створює документ Word та записуючий в нього 100 рядків цифр від 100 до 200.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Comobj, StdCtrls, Buttons;
type
TForm1 = class (TForm)
BitBtn1: TBitBtn;

procedure BitBtn1Click (Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1: TForm1;
implementation

{$ R *. dfm}
procedure TForm1.BitBtn1Click (Sender: TObject);
var
WordDoc: variant;
x: integer;
y: string;
begin
WordDoc: = CreateOLEObject ('Word.Application');
WordDoc.Visible: = true;
WordDoc.Documents.Add;
x: = 100;
while x <201 do
begin
y: = IntToStr (x);
WordDoc.Selection.TypeText (y);
WordDoc.Selection.TypeParagraph;
x: = x +1;
end;
WordDoc: = Unassigned;
end;
end.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
62.4кб. | скачати


Схожі роботи:
Delphi програмування для всіх
Delphi робота з MS WORD
Програмування в Delphi
Програмування Delphi
Програмування в Delphi
Середовище програмування DELPHI 2 0
Середовище програмування Delphi
Середовище програмування DELPHI 20
Середовище програмування DELPHI 2 0 2
© Усі права захищені
написати до нас