Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

InsertOLEForm.OLEItemsListBox.ItemIndex – указывает на выделенную строку в списке. InsertOLEForm.ProgramsID.Strings[строка] – здесь храниться идентификатор



Я перебираю все элементы, поэтому в квадратных скобках указываю параметр i. Текст строки можно узнать в свойстве Items компонента CheckListBox1. Чтобы узнать текст нулевой строки надо написать:


CheckListBox1.Items[0]

На компакт диске, в директории \Примеры\Глава 11\CheckListBox ты можеш ь увидеть приме р это й программы.


11.8 Полоса разделения (TSplitter)

- TSplitter

апусти проводник Windows Explorer. Посмотри на его главное окно, которое разбито на две части. Слева ты можешь видеть список дисков и директорий, а справа находятся файлы из выбранной папки. Между двумя половинами окна

находиться полоска, которую можно двигать (смотри рисунок 11.8.1), увеличивая или уменьшая одну из половин окна. Вот именно такой эффект легко создать с помощью компонента TSplitter.

У компонента TSplitter не так уж и много свойств, поэтому я не буду долго заострять на нём внимания, а просто покажу тебе пример работы с ним.

Создай новое приложение. Теперь брось на форму компонент панели (TPanel) и растянем его по верхнему краю формы (установи у него свойство Align в alTop). В свойстве Caption напишем «Верхняя панель». Теперь бросим на форму TSplitter и у него тоже установим в свойстве Align значение alTop.

Теперь брось ещё одну панель и установи у неё выравнивание по левому краю. В свойстве Caption напиши «Левая панель». Бросим ещё один TSplitter и тоже установим выравнивание по левому краю

Рис 11.8.2 Форма будущей программы

Ну и наконец последняя панель с выравниванием по всей оставшейся площади формы (свойство Align должно быть alClient). Ну а в свойстве Caption напишем «Клиентская панель».

Если ты всё сделал правильно, то у тебя должно получиться что-то похожее на рисунок 11.8.2 – три панели и между ними разделители TSplitter. Попробуй запустить эту программу и подвигать мышкой разделители. Размеры панелей будут меняться автоматически, что очень удобно для большинства программ.

На компак т диске, в директории \Примеры\Глава 11\Splitter ты можеш ь увидеть приме р это й программы.


InsertOLEForm.OLEItemsListBox.ItemIndex – указывает на выделенную строку в списке. InsertOLEForm.ProgramsID.Strings[строка] – здесь храниться идентификатор.

На рисунке 22.3.2 ты можешь увидеть моё окно, с результатом работы.

В принципе, пример рабочий. Единственный его недостаток – нет проверки на ошибки. Возможны ситуации, когда в системе есть объекты с запорченными записями (неправильная установка или удаление записей), в этом случае, при создании программа может зависнуть. Самый простой способ – поставить вызов функции CreateObject в блоке try..except..end, для исключения подобных ошибок. Второе – у нас нет проверки на выделение элемента. Возможно, что пользователь увидеть окно и нажмёт «ОК», а при этом ни одна строка списка не будет выделена. Так что перед загрузкой желательно проверять InsertOLEForm.OLEItemsListBox.ItemIndex на правильное значение. Если свойство ItemIndex больше или равно нулю, то одна из строк выделена, если равно –1, то выделенных строк в списке нет, а пользователь нажал ОК.

Я намеренно не стал делать полноценный исходник, чтобы ты сам мог его доработать. Я ставлю задачу в этой книги показать тебе основы и научить правильно мыслить, а дальше ты мыслить должен сам.

На компакт диске, в директории \Примеры\Глава 22\InsertDialog ты можеш ь увидеть приме р это й программы.

22.4. Элементы управления ActiveX

еперь разберёмся с элементами управления ActiveX. Я уже достаточно нехорошего сказал о них в теории, теперь пора познакомиться с компонентами ActiveX на практике. Хотя я уже говорил, что их не особо

люблю, но иногда использовать приходиться. Единственный компонент, который я использую регулярно – Internet Explorer. Да, это тоже компонент ActiveX, который использует Windows, хотя ты и видишь его в виде программы. Именно потому что этот компонент встроен в Windows и присутствует на всех машинах, я использую его достаточно часто.

Запускай Delphi. Перейди на закладку Internet палитры компонентов. Здесь должен быть компонент WebBrowser (он должен быть последний). Если у тебя версия Delphi меньше, чем пятая, то этого компонента может и не быть. Он может отсутствовать и если ты отказался устанавливать интернет компоненты (по умолчанию они ставятся).

Если компонента WebBrowser нет, то его надо установить (но даже если есть, читай всё подряд, в будущем пригодиться). Выбери Import ActiveX Control из меню Component. Перед тобой должно открыться окно, как на рисунке 22.4.1.

В списке выбора этого окна (сверху) найди строку Microsoft Internet Controls (Version 1.1). Версия может отличаться, но это не важно. Теперь нажми кнопку Install. Можно было бы нажать кнопку Create Unit, чтобы создать модуль с описанием ActiveX, но это излишне, потому что по нажатию кнопки Install, этот модуль создастся автоматически. Нажимай, и перед тобой откроется окно выбора пакета, как на рисунке 22.4.2.

Окно выбора пакета очень похоже на то, которое мы видели при установки компонентов VCL. Только здесь ты не выбираешь имя файла (он будет создан из компонента ActiveX, а можешь только выбрать пакет, в который будет происходить установка. На закладке Into new package ты можешь создать новый пакет точно так же, как и при создании пакетов для VCL компонентов. Точнее сказать, что пакеты одни и те же, разницы никакой. В одном пакете могут храниться VCL и ActiveX компоненты.

Выбери пакет и нажми ОК. После этого появиться запрос на компиляцию пакета как на рисунке 22.4.3. Соглашайся. Delphi откомпилирует необходимые файлы и установит компонент для работы с браузером.

После того, как Delphi прошуршит мозгами, появится окно, которое сообщит об успешной установке нового компонента. Нажми " OK " и закрой все, что открыл Delphi. Для этого выбери Close All из меню File. Теперь и у тебя есть компонент WebBrowser, только он расположен на странице ActiveX палитры компонентов.

Как ты мог заметить, мы будем использовать Microsoft Internet Controls, т.е. движок установленного на твоем компьютере IE. А это значит, что твой браузер подхватит все болезни и глюки своего движка. Единственное, что может успокоить -так это то, что интерфейс не будет таким занудным. Он будет таким, как ты захочешь, потому что сделан твоими руками, а своё всегда приятнее.

Сейчас ты уже готов приступить к программированию. Создай новый проект и сразу измени заголовок и иконку.

Двигаемся дальше. Установи на форму наш компонент WebBrowser (он находится на закладке Internet или ActiveX палитры компонентов) -у тебя появится белый квадрат с именем WebBrowser1. После этого брось на форму CoolBar, который находится на закладке Win32 палитры компонентов. Это панелька, которая должна выровняться по верхнему краю на твоей форме. Теперь выдели WebBrowser1 и перейди в объектный инспектор. Щелкни по свойству Align и в выпадающем списке выбери alClient. Компонент WebBrowser должен растянуться на все свободное место формы. В результате ты увидишь нечто похожее на рисунок 22.4.4.

Теперь брось на CoolBar1 (мы его недавно установили на форму) панель ToolBar из закладки Win32 и ComboBox из закладки Standard палитры компонентов. Все это ты должен бросить именно внутрь CoolBar1, иначе ты получишь некрасивый набор компонентов. После этого нужно выделить CoolBar1 и перейти в объектный инспектор. Здесь ты должен изменить строку AutoSize на true (по умолчанию она false).

Если что-то не получилось, то читай главу заново. Если все в порядке, то выделяй ComboBox1 (выпадающий список) и переходи в объектный инспектор. Здесь ты должен выделить закладку Events и произвести сложнейшее действие двойного щелчка по строке OnKeyDown, чтобы создать обработчик этого события. Как и раньше, Delphi создаст процедуру обработчика. Она будет вызываться каждый раз, когда ты будешь вводить какую-нибудь букву в ComboBox. Здесь ты должен написать следующее:

procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin

if Key= VK_RETURN then WebBrowser1.Navigate(ComboBox1.Text); end;

Здесь я проверяю, если переменная Key равна VK_RETURN (т.е. если нажата кнопка Enter), то выполнить следующее действие - WebBrowser1.Navigate(ComboBox1.Text). Здесь я вызываю метод Navigate нашего браузера и в качестве параметра указываю текст компонента ComboBox. Метод Navigate заставляет открыть браузер указанную страничку.

Если ты устанавливал компонент WebBrowser как ActiveX и он не стоял у тебя сразу же, то возможно, что при компиляции Delphi будет ругаться на недостаточность параметров. Он может запросить аж три дополнительных параметра типа OleVariant. В этом случае объяви три переменные такого типа и просто подставь их:

procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word; var p1,p2,p3:OleVariant;

begin if Key= VK_RETURN then WebBrowser1.Navigate(ComboBox1.Text, p1, p2, p3);

end;

Нажми "F9", и твоя прога должна засвистеть. Введи какой-нибудь адрес в строку ComboBox и нажми Enter. Если ты правильно ввел адрес, то в WebBrowser1 через несколько минут должен появиться указанный сайт.

Кликни по ToolBar1 и снова переходи в ObjectInspector. Здесь нужно изменить свойства AutoSize, ShowCaption и Flat на true (все они по умолчанию равны false). Теперь щелкай правой кнопкой по ToolBar1 и из появившейся меню выбирай пункт New Button. На компоненте ToolBar1 должна появиться новая кнопка с именем ToolButton1. Выдели ее и в объектном инспекторе поменяй свойство Caption на Открыть. Создай еще насколько кнопок с заголовками: Назад, Вперед, Стоять, Обновить и Печать. Результат должен быть похож на рисунок 22.4.5.

Установи еще на форму OpenDialog из закладки Dialogs палитры компонентов. Он нам скоро понадобится.

Теперь дважды кликни по кнопке Открыть, и Delphi автоматически создаст процедуру, которая будет вызываться при нажатии этой кнопки. В этой процедуре нужно написать следующее:

procedure TForm1.ToolButton1Click(Sender: TObject); begin if OpenDialog1.Execute then begin WebBrowser1.Navigate(OpenDialog1.FileName);

ComboBox1.Text:=OpenDialog1.FileName; end;

end;

Здесь я заставляю наш браузер загрузить открытый файл и в строке ComboBox отображаю его имя, чтобы пользователб знал, какая страница сейчас загружена.

Теперь ты можешь запустить программу и открыть с помощью этой кнопки любой файл на диске. Но, я думаю, что торопиться не надо. Заставим работать остальные кнопки! Дважды кликни по кнопке Назад. Какой будет результат, ты уже догадался. Напиши тут следующее:

procedure TForm1.ToolButton2Click(Sender: TObject); begin WebBrowser1.GoBack; end;

Я думаю, что здесь ничего объяснять не надо. Мы просто заставляем WebBrowser1 идти на предыдущую страницу. Повтори те же операции для кнопки Вперед, чтобы создать процедуру обработчика OnClick. Напиши для нее следующий код:

procedure TForm1.ToolButton3Click(Sender: TObject); begin WebBrowser1.GoForward; end;

Для кнопки "Стоять" напиши: " Стоять на месте, руки по швам ". Шучу. Напиши лучше это:

procedure TForm1.ToolButton4Click(Sender: TObject); begin WebBrowser1.Stop; end;

Для кнопки Обновить:

procedure TForm1.ToolButton5Click(Sender: TObject); begin WebBrowser1.Refresh; end;

И, наконец, для кнопки Печать:





Дата публикования: 2014-11-04; Прочитано: 654 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...