Конкретний приклад: броузер HTML в CBuilder

Тепер, коли ми знаємо все, що можна знати про роботу з керуючими елементами ActiveX (тобто знаємо, що вони те ж саме, що і звичайні компоненти), пора використовувати їх для написання якогось реального прикладу для демонстра ції мощі ActiveX і Internet-компонентів CBuilder

У цьому прикладі ми побудуємо броузер HTML-сторінок, який можна використовувати для перегляду HTML-файлів на вашій локальній станції Це корисно, оскільки майбутнє файлів допомоги Windows лежить саме в HTML (Згідно Microsoft) Тому цей броузер можна розцінювати як заміну системи допомоги Windows Так що це потужний приклад, чи не так

Повний вихідний код для цього прикладу можна знайти на супровідному компакт-диску в каталозі Chapter6 \ HTMLViewer

На рис 63 представлена ​​форма, з якою ми будемо працювати в цьому проекті Форма містить комбінований список, керуючий елемент HTML (зі сторінки Internet палітри компонентів), поле введення, кнопку і поле статичного тексту (мітку) Це все, що потрібно для вирішення завдання

Процес, який ми будемо використовувати, досить простий Коли користувач введе URL (адреса в Internet) у поле введення і натисне кнопку Поїхали, Ми будемо намагатися завантажити HTML-документ

Якщо введений локатор ресурсів (URL) не схожий на адресу в Web, ми будемо вважати, що це імя локального файлу на диску Щоб так робити, ви повинні дещо розуміти про те, як керуючий елемент HTML працює з файлами

Рис 63 Форма броузера HTML

Якщо до керуючого елементу HTML потрапляє правильний локатор ресурсів, він перевіряє, чи існує в даний момент підключення до Internet Якщо ні, то намагається відбутися підключення, налаштоване на цього користувача, відображаючи стандартне вікно діалогу підключення з введенням пароля Якщо підключення до Internet є, керуючий елемент використовує інтерфейс Internet-зєднань (що є частиною програмного інтерфейсу Windows 32 API) для створення зєднання У цей момент HTML-файл знаходиться і завантажується в броузер

Більш цікавий випадок, в нашому аспекті, коли файл локален, тобто перебуває на жорсткому диску користувача (або іншому механізмі зберігання даних) Обєкт HTML, поставлений з CBuilder, містить механізм запиту документів від сервера (RequestDoc), Але, схоже, не має прямих способів завантаження даних з локального диска Зовнішність, проте, оманлива Метод RequestDoc управляюще го елемента HTML вміє насправді загрожують локальні файли, якщо ви знаєте, як це зробити Слава Богу, ми знаємо, як це робиться

Додайте обробник події для натискання на кнопку Go на формі і наступний код у нього: void __ fastcall TForm1 :: Button1Click (TObject * Sender)

{

AnsiString s = Edit1-&gtText

if ( strstr(Edit1-&gtTextc_str(),»//») == NULL) s = «File:///» + s

HTML1-&gtRequestDoc(s) ComboBox1-&gtItems-&gtAdd( s )

}

У попередньому фрагменті ми спочатку отримуємо текст з поля введення Вважаючи, що що-небудь там є, ми шукаємо рядок / / в цьому тексті Якщо вона там знайдена, то це означає, що рядок містить

дійсний http-адреса у форматі http://xxx для Internet-адрес Якщо ж ця стрічка не знайдена, ми припускаємо, що користувач хотів подивитися локальний файл У цьому випадку ми використовуємо спеціальний модифікатор пристрої file: для доступу до локальної файлової системи Коли керуючий елемент HTML знаходить модифікатор file:, то він відноситься до частини, що залишилася адреси як до локального шляху файлу (Або мережному шляху файлу) і намагається відкрити цей файл Щоб прочитати файл HTML1HTM в каталозі c: \ temp, наприклад, вам потрібно використовувати рядок file :/ / c: \ temp \ html1htm Виглядає смішно, але працює

Коли рядок адреси файлу зроблена, ми додаємо файл в комбінований список на верху форми і дозволяємо користувачу повертатися до попереднім документам, просто вибираючи їх з комбінованого списку у формі Для того щоб використовувати цю інформацію, нам потрібно знати, коли користувач вибирає інший елемент у комбінованому списку Для цього додайте обробник події OnChange комбінованого списку Додайте наступний код в методComboBox1Change:

void __fastcall TForm1::ComboBox1Change(TObject *Sender)

{

AnsiString s = ComboBox1-&gtText HTML1-&gtRequestDoc(s)

Edit1-&gtText = s

}

Цей метод просто бере рядок з поля введення комбінованого списку і передає її в керуючий елемент HTML Таким чином, запитаний файл завантажиться в броузер і буде відображено І нарешті, вміст поля введення буде змінено на поточний рядок тексту, дозволяючи користувачеві при необхідності відредагувати адресу

На рис 64 показано вікно запущеного додатку, в якому завантажений HTML-файл,

постачається разом з керуючими елементами VC в каталозі CBuilder \ OCX \ Vci

Рис 64 Програма броузера HTML в дії

На цьому ми дописали програму управління HTML, яка показує, як легко і швидко ви можете використовувати HTML-компонент у ваших додатках Використання ActiveX дуже просто в CBuilder, можливо, навіть простіше, ніж в середовищах розробки, які вміють створювати

керуючі елементи ActiveX на місці

Джерело: Теллес М – Borland C + + Builder Бібліотека програміста – 1998

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*