День до сдачи работы мы справимся, и ты получишь Отлично по своему предмету! Только представь ты занимаешься своим любимым делом, пока твои лохиодногруппники теряют свои нервные клетки Проникнись Это бесценное ощущение Курсовая,
Скачать 389.95 Kb.
|
В отличие от свойств методы не видны в окне инспектора объектов.4.2.1 Типы компонент Каждая из компонент представляет собой законченную конструкцию, содержащую свойства, методы и события. Стандартные компоненты VCL инкапсулируют поведение типовых элементов управления операционной системы Windows, как TButton, TListbox и TEdit. В основном они расположены на вкладках Standard и Win95 Палитры компонент. В отличие от стандартных компонент, оригинальные компоненты представляют собой элементы управления, у которых нет ни метода для собственного отображения, ни заранее определенного поведения (Tpanel, TstringGrid и др.). Графические компоненты представляют собой видимые элементы управления, которые не могут принять фокус ввода, т.к. не являются оконными (TImage, Tshape и др.). Невидимые компоненты не появляются на форме в виде каких-либо элементов управления. Поведение невидимых компонент определяется на этапе проектирования, путем инкапсуляции нужных свойств объекта (TOpenDialog, Ttimer и др.). 4.2.2 Иерархия классов VCL Расположенная ниже схема показывает ключевые классы в иерархической структуре, от которых произведены все компоненты VCL. TObject -> … -> TComponent -> TGraphicControl -> … | | -> TWinControl -> … TObject является базовым классом для всех порождаемых классов, а TComponent является базовым классом для всех порождаемых компонент. Невидимые компоненты произведены от класса TComponent. Основные графические компоненты - от класса TGraphlcControl. Компоненты стандартного управления произведены непосредственно от класса TWinControl, а оригинальные компоненты - косвенно от класса TCustornControl, восходящего к TWinControl. Ниже приведена схема, продолжающая иерархическую структурную схему компонентных классов VCL. TGraphicControl TWinControl *Tbevel *TButtonControl *TCustomLabel o Tbutton TDBText +TBitBtn Tlabel o TCustomCheckBox *Timage +TCheckBox *TPaintBox +TDBCheckBox *TShape o TRadioButton *TSpeedButton *TCustomComboBox TComboButton o TComboBox TNavButton o TDBComboBox TDriveComboBox TFilterComboBox *TCustomControl TCustomGrid + TCunstomDBGrid + TDBGrid + TDBLookupList + TpopupGrid + TCustomOutline +TOutline + TDrawGrid + TStringGrid TCunstomGroupBox + TCunstomRadioGroup +TDBRadioGroup +TRadioGroup +TGroupBox TCunstomPanel +TDBNavigator +TPanel TDBImage TDBLookupControl +TDBLookupComboBox + TDBLookupListBox + TPopupDataList THeader THintWindow TMediaPlayer TNotebook TOleContainer TPage Tscroller TTabSet * TCustomEdit TCustomMaskEdit + TDBEdit + TInplaceEdit + TMaskEdit TCustomMemo + TCustomRichEdit + TRichEdit + TDBMemo + TMemo TDBLookupCombo TEdit * TCustomHotKey THotKey * TCustomListBox TDBListBox TDirectoryListBox TFileListBox TListBox * TCustomListView o TListView *TCustomTabControl TPageControl TTabbedNotebook TTabControl *TCustomTreeView TTreeView * TCustomUpDown TUpDown * TDBCtrlGrid * TDBCtrlPanel * THeaderControl * TOleControl * TProgressBar * TScrollBar * TScrollingWinControl TForm + TDesignWindow + TInputRedDialog + TLoginDialog + TPasswordDialog TScrollBox * TStatusBar * TTabPage * TTabSheet * TTrackBar 4.3 Структуры файлов в C++ Builder Для каждого приложения C++ Builder создается один файл проекта, один make-файл один файл модуля и один файл ресурсов. Первоначально файлу проекта присваивается по умолчанию имя Project1.cpp Если в процессе разработки приложения добавляются формы и модули C++ Builder обновляет файл проекта. Make-файл(по умолчанию Project1.mak) - это текстовый файл, содержащий макросы, директивы и инструкции по компиляции и сборке проекта. Модули являются основой создания библиотек и приложений в C++ Builder. Модуль содержит исходный текст на языке C++ и первоначально представляет собой файл с расширением Unit1.cpp. Файл с расширением h генерируется при создании нового модуля. В нем содержится информация о данных и функциях, которые можно использовать в модуле, т.е.- в h-файле содержится интерфейс, а в самом модуле - реализация. Форма является одним из важнейших элементов приложения C++ Builder. Процесс редактирования формы происходит при добавлении к форме компонентов, изменении их свойств, создании обработчиков событий (по умолчанию файл формы или файл ресурсов имеет имя Unit1.dfm). Когда к проекту добавляется новая форма, создаются 3 отдельных файла: • файл модуля (.срр) - содержит исходный код, связанный с формой; • h-файл(.h) - содержит описание класса формы, т. е. описание содержащихся на форме компонентов и обработчиков событий; • файл формы (.dfm) - двоичный файл, содержащий сведения о доступных в инспекторе объектов свойствах компонентов, содержащихся в форме. В процессе трансляции создаются дополнительные файлы с расширениями ilc, ild, ilf, ils, obj, которые можно удалить. 4.4 Визуальные компоненты (VCL) VCL в C++Builder находятся на нескольких страницах. Страница Standard состоит из следующих визуальных компонент. 1.Компонент MainMenu позволяет создавать линейку меню проектируемой формы и выпадающее меню (компонент невизуальный). 2.Компонент PopupMenu позволяет создавать всплывающее меню при нажатии правой кнопки мыши (компонент невизуальный). 3.Компонент Label используется для создания надписей. 4.Компонент Edit используется для ввода или отображения однострочных текстов. 5.Компонент Memo используется для ввода или отображения многострочных текстов. 6.Компонент Button используется для создания кнопок, котрыми можно выбирать те или иные команды. 7.Компонент Checkbox позволяет выбирать или выключать те или иные опции. 8.Компонент RadioButton предлагает набор альтернатив из которых выбирается одна. 9.Компонент ListBox представляет стандартное окно списка, позволяющее выбирать те или иные пункты из списка. 10.Компонент ComboBox объединяет функции ListBox и Edit.Он позволяет ввести текст или выбрать из списка. 11.Компонент ScrollBar -это стандартная линейка прокрутки. 12.Компонент GroupBox объединяет группу связанных органов управления (контрольные индикаторы, радиокнопки). 13.Компонент RadioGroup -комбинация GroupBox с набором RadioButton. Он позволяет создавать группы радикнопок. 14.Компонент Panel испорльзуется для группировки органов управления. Страница Win95 включает следующие компоненты: - TabControl - используется для создания закладок, которые можно выбирать; - PageControl - создает страницы, управляемые закладками; - TreeView - позволяет просматривать иерархические структуры данных; - ListView - отображает списки в колонках; - ImageList - позволяет работать со списками изображений (невизуальный компонент); - Header - создает составные перемещаемые заголовки; - Richedit - создает окно редактирования (позволяет выбирать цвет, шрифт и т.д.); - StatusBar - отображает информацию о состоянии программы; - TrackBar - создает ползунок; - ProgressBar - используется для отображения хода процесса; - UpDown - создает кнопку-счетчик; - HotKey - создает поддержку "горячих клавиш"; - AnimatedSymbol – создает простейшую аннимацию. Страница Additional состоит из следующих компонент: - BitBtn -используется для создания кнопок, на которых расположен рисунок; - SpeedButton - применяется для создания линеек инструментов вместе с компонентом Panel; - MaskEdit - используется для ввода символов в соответствии с шаблоном; - StringGrid - применяется для отображения текстовой информации в строках и столбцах; - DrawGrid - применяется для отображения нетекстовой информации в строках и столбцах; - Image - используется для отображения графики; - Shape - используется для рисования геометрических фигур; - Bevel - используется для рисования объемного прямоугольника; - ScrollBar - применяется для создания зон отображения с прокруткой; - Scroller - применяется для создания зон отображения с горизонтальной прокруткой; Компоненты страницы Data Acces используются для связи и передачи информации между приложениями и базами данных. В работе не рассматриваются. Компоненты страницы Data Controls используются для организации доступа к данным. В работе не рассматриваются. Страница Win3.1 содержит компоненты, ориентированные на Windows 3.1. В работе не рассматриваются. Страница Internet содержит компоненты, ориентированные на работу с Internet. TFTP – компонент, осуществляющий перенос данных между локальным и удаленным компьютером с рлмощью протокола FTP; THTML – предназначен для отображения документов формата HTML; THTTP – позволяет получать документы с помощью протокола HTTP; TNNTP – позволяет осуществлять соединение в режиме on-line с серверами новостей по протоколу NNTP; TPOP – позволяет приложению обмениваться данными с почтовыми серверами с использованием протокола POP3; TSMTP – поддерживает обмен сообщениями с почтовыми серверами на основе протокола SMTP; TTCP – осуществляет сетевое соединение и обмен данными по протоколу TCP; TUDP – осуществляет соединение и обмен данными по протоколу UDP. Компоненты страницы Dialogs используются для создания различных окон диалога(невизуальные компоненты); - OpenDialog - для создания окон диалога "открыть файл"; - SaveDialog - для создания окон диалога "сохранить файл"; - FontDialog - для создания окон диалога "шрифты"; - ColorDialog - для создания окон диалога " цвет"; - PrintDialog - для создания окон диалога "печать"; - PrinterSetupDialog - для создания окон диалога "установки принтера"; - FindDialog - для создания окон диалога "найти"; - ReplaceDialog - для создания окон диалога "заменить". Страница System содержит компоненты, позволяющие включить в программу системные средства: - Timer - используется для запуска процедур, функций и т.д. в заданное время (невизуальный компонент); - PaintBox - создает область, в которой можно рисовать; - FileListBox - создает окно, в котором отображается список файлов из выбранного каталога; - DirectoryListBox - отображает каталоги выбранного диска; - DriveComboBox - позволяет отображать и выбирать диски; - FilterComboBox - позволяет создавать окно для отображения фильтров файлов; - MediaPlayer - позволяет проигрывать звуковые и видеофайлы; - OLEContainer -создает область для объекта OLE; - DDEClientConv - используется для диалога с DDE сервером (невизуальный компонент); - DDEClientItem - используется для спецификации данных, передаваемых DDE серверу (невизуальный компонент); - DDEServerConv - используется для DDE сервером для диалога с DDE с клиентом (компонент невизуальный); - DDEServerItem - используется для спецификации данных сервера (компонент невизуальный). QReport -ВК используются для генерации отчетов. В работе не рассматривается. Activeve X- OCX-компоненты, неявляющиеся частью C++Builder. - ChartFX - используется для построения диаграмм; - VCFirstImpression -реализует трехмерную графику; - VCFormulaOne - используется для работы с электронными таблицами; - VCSpeller - средство проверки орфографии; - GraphicsServer - средство для работы с графикой; На этой странице могут быть расположены свободно распространяемые компоненты для разработки тех или иных приложений (например, просмотрщик файлов виртуальной реальности VRML и др.). Страница Samples содержит компоненты, разработанные пользователями - примеры VCL. - Gauge - создает индикатор хода процесса; - SpinButton - позволяет создавать кнопки- счетчики; - SpinEdit - создает окно редактирования с кнопкой-счетчиком; - MCxSpriteBgr - панель, на которой можно создавать спрайты; - MCxStrite - позволяет создавать спрайты. Компоненты VCL можно разрабатывать самостоятельно, поэтому существует большое количество страниц и компонентов. Вот некоторые из страниц. JG - дополнительные компоненты - Banner - позволет создавать в окне движущийся текст или изображение; - SizeTask - позволяет устанавливать максимальный размер формы MyStuff - дополнительные компоненты - Animated - проигрывает bmp-файлы; - AutoLed - кнопка меняет цвет; - MMLabel - метка меняет цвет; 4.5 Программы, управление событиями, исключения Рассмотрим простейшую программу - вывод строки по нажатию кнопки. Создадим новый проект или воспользуемся пустым проектом, который предоставляется С++ Builder в момент его запуска. На пустую форму положим два компонента: строку редактирования Edit и кнопку Button. Для этого щелкнем мышью на пиктограмме требуемого элемента в палитре, а затем поставим его в нужное место формы. Далее щелкнем на свойстве Text компоненты Edit и удалим текст, присвоенный строке системой. Изменим свойство Caption кнопки Button, введя текст "Нажми". Форма готова. Осталось написать исходный текст для обработки нажатия кнопки. Для этого надо выделить кнопку Button, переключить окно инспектора объекта в режим создания обработчиков событий и дважды щелкнуть на событии OnClick. Откроется окно редактирования кода, в котором появился пустой обработчик события. Добавим в него строку исходного текста: Edit1-> Text = "Привет от Borland C++!"; После этого командой Run-Run начать компиляцию и выполнение программы. Нажмем кнопку "Нажми", и программа поприветствует нас. В отличии от DOS, в которой программа получает управление при запуске, и выполняется от начала до конца, в Windows 95 программа управляется событиями. При управлении событиями программа не делает ничего до тех пор, пока не происходит событие - нажатие клавиши мыши, нажатие клавиши клавиатуры и т.д. Существуют различные виды событий и их обработка. На примерах рассмотрим некоторые из них. 1.Обработчик, откликающийся на событие. Рассмотрим пример - обработка нажатия клавиши мыши и вывод координат курсора мыши. 1.Запускаем C++ Builder. 2.В инспекторе объектов выбираем страницу Events. 3.Справа от метки события OnMouseDown (нажатие клавиши мыши) дважды щелкаем мышью. 4.Появляется программный код процедуры - обработчика событий. 5.Вводим код. Form1->Canvas->TextOut(X,Y,"Координата "+IntToStr(X)+ ","+ IntToStr(Y)); 6. Запускаем программу на выполнение. При нажатии клавиши мыши активизируется обработчик событий OnMouseDown,которому передаются параметры - координаты X и Y. Таким образом в данном случаее мы рассмотрели вариант, когда обработчику событий передана некоторая информация - параметры X и Y. 2.Обрабочик событий, передающий информацию, вызываемой процедуре. Возможен вариант, когда обработчик событий передает информацию функции, которая его вызвала. Рассмотрим пример, когда в окне редактирования все буквы преобразуются в заглавные. 1.Запускаем C++ Builder. 2.Выводим на форму из палитры компонент элемент Edit. 3.В разделе инспектора объектов Events вправо от OnKeyPress два раза щелкаем мышью, получаем фрагмент кода. 4.Набираем код. Key= AnsiUpperCase(Key)[1]; 5.Запускаем на выполнение. Любая введеная буква печатается как заглавная. В данном примере переменная Key, содержащая значение нажатой клавиши указана как указатель на адрес символа - в этом случае любые изменения, сделанные в переменной передаются обратно в вызывающую функцию. Функция AnsiUpperCase(Key) преобразует символ в заглавный. Кроме этого существуют обработчики событий, ориентированный на обработку вспомогательных операций в сложной программе. Исключения. Для обработки исключений(ошибок) в C++ Builder имеются специальные средства. В частности, при возникновении ошибки возможна передача управления блоку, который ориентирован на обработку этой ошибки. Для этой цели используется блок try ... except() следующего формата: try { исполняемый код } except (проверяемая пеpеменная) { код, исполняемый при ошибке } |