10230

Компоненты TStringGrid, TTreeView, TPageControl, THeaderControl и THeader

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа №7 Компоненты TStringGrid TTreeView TPageControl THeaderControl и THeader Цель работы: изучить часто используемые для организации вводавывода компоненты TStringGrid TTreeView TPageControl THeaderControl и THeader. TStringGrid Компонент TStringGrid представляет собой таблицу содержащую строки. Т

Русский

2013-03-24

68.5 KB

6 чел.

Лабораторная работа №7

Компоненты TStringGrid, TTreeView, TPageControl, THeaderControl и THeader

Цель работы: изучить часто используемые для организации ввода-вывода компоненты (TStringGrid, TTreeView, TPageControl, THeaderControl и THeader).

TStringGrid

Компонент TStringGrid представляет собой таблицу, содержащую строки. Таблица может иметь полосы прокрутки, причем заданное число первых строк и столбцов может быть фиксированным и не прокручиваться. Таким образом, можно задать заголовки столбцов и строк, постоянно присутствующие в окне компонента. Каждой ячейке таблицы может быть поставлен в соответствие некоторый объект.

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

Основные свойства компонента, определяющие отображаемый текст: Cells - строка, содержащаяся в ячейке с заданными индексами столбца и строки, Cols - список строк, содержащихся в столбце с заданным индексом, Rows - список строк, содержащихся в строке с заданным индексом, Objects - объект, связанный со строкой, содержащейся в ячейке с заданными индексами столбца и строки. Все эти свойства доступны во время выполнения.

Свойства ColCount и RowCount определяют соответственно число столбцов и строк, свойства FixedCols и FixedRows - число фиксированных, не прокручиваемых столбцов и строк. Цвет фона фиксированных ячеек определяется свойством FixedColor. Свойства LeftCol и TopRow определяют соответственно индексы первого видимого на экране в данный момент прокручиваемого столбца и первой видимой прокручиваемой строки.

Свойство ScrollBars определяет наличие в таблице полос прокрутки. Причем полосы прокрутки появляются и исчезают автоматически в зависимости от того, помещается таблица в соответствующий размер, или нет.

Свойство Options является множеством, определяющим многие свойства таблицы: наличие разделительных вертикальных и горизонтальных линий в фиксированных (goFixedVertLine и goFixedHorzLine) и не фиксированных (goVertLine и goHorzLine) ячейках, возможность для пользователя изменять с помощью мыши размеры столбцов и строк (goColSizing и goRowSizing), перемещать столбцы и строки (goColMoving и goRowMoving) и многое другое. Важным элементом в свойстве Options является goEditing - возможность редактировать содержимое таблицы.

Для отображения изображений компонент TStringGrid имеет канву Canvas.  Имеется метод CellRect, который возвращает область канвы, отведенную под ячейку с заданными индексами столбца и строки.

Иерархическое отображение данных

Компонент TTreeView 

(страница Win32)служит для отображения иерархических данных в виде дерева, в котором пользователь может выбрать нужный ему узел или узлы. С каждым узлом дерева могут быть связаны некоторые данные.

Основным свойством TTreeView, содержащим информацию об узлах дерева, является индексированный список узлов Items типа TTreeNodes. Каждый узел является объектом типа TTreeNode, обладающим своими свойствами и методами.

Во время проектирования формирование дерева осуществляется в окне редактора узлов дерева, которое вызывается двойным щелчком на компоненте TTreeView или нажатием кнопки с многоточием около свойства Items в окне Инспектора Объектов. Для каждого нового узла дерева можно указать ряд свойств: Text - надпись, появляющаяся в дереве около данного узла, ImageIndex и SelectedIndex - индексы пиктограмм, отображаемых для узла, который соответственно не выделен и выделен пользователем в данный момент. Эти индексы соответствуют списку изображений, хранящихся в отдельном компоненте TImageList, на который указывает свойство Images компонента TTreeView. Свойство узла  - StateIndex позволяет добавить вторую пиктограмму в данный узел, не зависящую от состояния узла. Подобная пиктограмма может просто служить дополнительной характеристикой узла. Индекс, указываемый как StateIndex, соответствует списку изображений, хранящихся в отдельном компоненте TImageList, указанном в свойстве StateImages компонента TTreeView.

При выполнении программы узлы могут быть добавлены методами TTreeNodes AddChildFirst, AddChild, AddChildObjectFirst, AddChildObject, AddFirst, Add, AddObjectFirst, AddObject and Insert.

Пример создания дерева:

var Tree:TTreeNode;

begin

 if TreeView1.Items.Count=0

 then Tree:=TreeView1.Items.AddFirst(nil,’Text’)

 else Tree:=TreeView1.Items.Add(TreeView1.Selected,’Text’);

 Tree.ImageIndex:=1; {Заранее в компонент TimageList добавлены рисунки }

 Tree.SelectedIndex:=0;

end;

Секционное отображение данных

TPageControl

Компонент TPageControl относится к группе многостраничных панелей, которые позволяют экономить пространство окна приложения, размещая на одном и том же месте страницы разного содержания. Выбор пользователем страницы производится щелчком на соответствующей закладке. Для создания компонента многопозиционного переключателя с одной единственной страницей вместо TPageControl нужно использовать TTabControl.

Во время проектирования работу со страницами проще всего производить, щелкнув на компоненте правой кнопкой мыши и выбрав из всплывшего меню соответствующий раздел: NewPage - создать новую страницу, NextPage или Previous Page - перейти к следующей или предыдущей странице. Каждая создаваемая страница является объектом типа TTabSheet. Это панель, на которой можно размещать любые управляющие компоненты, окна редактирования и т.п. Ее основные свойства:

Name Имя, по которому можно ссылаться на страницу

Caption Надпись, которая появляется на ярлычке закладки

PageIndex Индекс, по которому можно ссылаться на страницу

ImageIndex Индекс изображения, которое может появляться на ярлычке закладки

Из общих свойств компонента TPageControl можно отметить следующие:

Style Определяет стиль отображения компонента

MultiLine Определяет, будут ли закладки размещаться в несколько рядов, если все они не помещаются в один ряд

TabPosition Определяет место расположения ярлычков закладок

TabHeightиTabWidth Высота и ширина ярлычков закладок

Images Ссылка на компонент TImageList, который содержит список изображений на ярлычках

ScrollOpposite Определят способ перемещения закладок при размещении их в несколько рядов

ActivePage Имя активной страницы

Pages[Integer] Доступ к странице по индексу

PageCount Количество страниц

В компоненте имеется ряд методов, позволяющих оперировать страницами, создавать их, уничтожать, переключать. Основные события компонента - OnChanging и OnChange. Первое из них происходит непосредственно перед переключением на другую страницу после щелчка пользователя на новой закладке. При этом в обработчик события передается по ссылке параметр AllowChange - разрешение переключения. Если в обработчике задать AllowChange = false, то переключение не произойдет. Событие OnChange присходит сразу после переключения.

THeaderControl

Компонент THeaderControl  (страница Win32) позволяет вводить в приложение заголовок, состоящий из ряда секций, причем пользователь во время выполнения приложения может их перемещать.

Описание компонента находится в модуле ComCtrls.

Основное свойство компонента THeaderControl - Sections. Оно является списком объектов  типа THeaderSection, каждый из которых описывает одну секцию заголовка.

Свойство Sections можно задать во время проектирования, с помощью редактора заголовков, который можно вызвать, нажав кнопку с многоточием рядом с этим свойством в инспекторе объектов или просто сделав двойной щелчок на компоненте THeaderControl. Свойство Style определяет стиль заголовков: hsButtons- как кнопки,

hsFlat – плоские. Свойство HotTrack определяет подсвечивание заголовков при прохождении над ними курсора мыши (работает только для стиля hsButtons).

В редакторе заголовков можно добавлять секции, а затем в окне Инспектора Объектов задавать их свойства: Text - текст заголовка, MinWidth и MaxWidth - соответственно минимальная и максимальная ширина секции в пикселях, Width - значение ширины по умолчанию.

При изменении ширины секции во время выполнения генерируется событие OnSectionResize. В обработчик этого события надо вставить операторы, синхронно изменяющие ширину того, заголовком чего является секция: это может быть столбец какой-то таблицы, какая-то панель и т.п.

Свойство AllowClick, равное по умолчанию true, определяет поведение секции как кнопки при щелчке пользователя на ней. В этом случае при щелчке генерируется событие OnSectionClick компонента HeaderControl, в обработчик которого и надо вставить операторы, выполняющие необходимые действия.

Свойство секции Style может иметь значение hsText - в этом случае в заголовке отображается значение свойства Text, или hsOwnerDraw - в этом случае отображается то, что рисуется непосредственно на канве Canvas операторами, записанными в обработчике события OnDrawSection компонента HeaderControl. В секции можно отобразить рисунок, находящийся в контейнере TImageList. Для этого нужно связать компоненты,  в поле Images компонента THeaderControl указать имя ImageList1 и в заголовке задать номер рисунка в поле ImageIndexs.

Компонент THeader (страница Win 3.1) обладает существенно меньшими возможностями, чем HeaderControl. В нем свойство Sections имеет тип TStrings и содержит только тексты заголовков, не позволяя регулировать пределы изменения ширины секций, их функционирование как кнопок и т.д.

Вывод звуковой информации

MessageBeep (UINT : uType) воспроизводит звуковой сигнал. Звуки, соответствующие различным типам  сигналов, хранятся в реестре в разделе [sounds] и устанавливаются пользователем с помощью программы Панель управления щелчком на пиктограмме Звук.

Целый без знака параметр uType функции MessageBeep определяет воспроизводимый звук. Для него предопределены следующие константы:

Значение Звук

MB_ICONASTERISK Звездочка

MB_ICONEXCLAMATION Восклицание

MB_ICONHAND Критическая ошибка

MB_ICONQUESTION Вопрос

MB_OK Стандартный звук

При успешном завершении функция возвращает ненулевое значение (true). Если функция вернула нулевое значение, то получить информацию об ошибке можно с помощью вызова GetLastError.

После инициализации воспроизведения звука функция MessageBeep возвращает управление в точку вызова и воспроизведение звука производится асинхронно.

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

Задание на разработку:

  1.  Создайте приложение, позволяющее создавать древовидную структуру какого-либо явления или процесса. Результат сравните с примером, который находится в каталоге с лабораторной работой \Example1.
  2.  Поместите на форму компоненты THeaderControl, TImageList и два TMemo. Расположите визуальные компоненты как показано на рисунке.

Задайте синхронное изменение ширины компонента Memo1 при изменении ширины секции компонента HeaderControl1. Результат сравните с примером, который находится в каталоге с лабораторной работой \Example2.

  1.  Создайте приложение в котором изменение ширины колонок компонента TStringGrid регулируется компонентом THeaderControl.

Результат сравните с примером, находящимся в каталоге \Example3.

  1.  Создайте приложение, в котором  в одной закладке TPageControl вводятся предложения в TMemo, а на другой странице в TStringGrid отображается в каждом столбце соответствующее предложение, разбитое на отдельные слова.  

Контрольные вопросы

  1.  Для каких целей можно использовать компонент TStringGrid?
  2.  Какую структуру имеет класс TTreeView? Для чего он используется?
  3.  Расскажите о секционном отображении информации в приложениях. Какие компоненты для этого используются?
  4.  Каким образом можно сформировать одномерный (двумерный) массив? Предложите компоненты VCL, которые, как вам кажется, наиболее подходят для этой цели.
  5.   Как можно вывести содержимое массивов на экран?
  6.  Предложите способ ввода-вывода информации о человеке (ФИО, дату, место рождения, рост, вес, место жительства, телефон).
  7.  Предложите способ ввода информации о структуре государственного управления РФ.


 

А также другие работы, которые могут Вас заинтересовать

27466. Демократический политический режим 24.5 KB
  Государственнополитический режим это элемент формы государства характеризующий совокупность приемов методов способов и средств осуществления государственной власти. Основными признаками демократического режима являются: господство закона; разделение властей; наличие у граждан реальных политических и социальных прав и свобод и их юридическая защищенность и гарантированность; выборность и сменяемость центральных и местных органов государственной власти их подотчетность перед избирателями гласность; наличие свободно формируемых...
27467. Законность, понятие и характеристика 25.5 KB
  Понятие законности неотделимо от понятия права. В результате реализации этого требования органами государства и его должностными лицами возникает особый режим система общественных отношений – режим законности. Законность как принцип – одно из руководящих системообразующих начал построения и деятельности правового государства выражающееся в системе принципов и требований отражающих идею законности. Режим законности – такое состояние общественных отношений когда во взаимоотношениях между государственной властью и населением господствует...
27468. Законотворчество в РФ 31.5 KB
  104 Конституции РФ принадлежит Президенту РФ Совету Федерации членам Совета Федерации депутатам Государственной Думы Правительству РФ законодательным представительным органам субъектов Федерации. 50 1 голос; федеральные же конституционные законы считаются принятыми если за них проголосовало не менее 2 3 голосов от общего числа депутатов Государственной Думы; б одобрение закона Советом Федерации в соответствии с ч. 105 Конституции РФ федеральный закон считается одобренным Советом Федерации если за него проголосовало более...
27469. К каким источникам права относятся, либо с ними связаны: договор купли-продажи, договор найма жилого помещения, союзный договор между суверенными республиками 25 KB
  К каким источникам права относятся либо с ними связаны: договор куплипродажи договор найма жилого помещения союзный договор между суверенными республиками. Виды источников: правовой обычай правовой прецедент правовая доктрина договоры нормативного содержания нормативный правовой акт. Договор куплипродажи и договор найма жилого помещения – типовые договоры. Типовой договор стандартная типовая отпечатанная типографским способом форма договора со стандартными условиями и формулировками.
27470. К какому виду норм можно отнести ст.7 ГК РФ 40 KB
  Гражданское законодательство и нормы международного права 1. Общепризнанные принципы и нормы международного права и международные договоры РФ являются в соответствии с Конституцией РФ составной частью правовой системы РФ. Здесь присутствуют нормы: 1. исходные нормыначала 2.
27471. К какому виду норм относятся: правила дорожного движения; правила безопасной эксплуатации домашних бытовых приборов; правила, регламентирующие порядок проведения митингов и демонстраций 30.5 KB
  1 Правила дорожного движения – общие императивные запрещающие нормы. Общие нормы – это предписания охватывающие своим действием как правило все правовые институты той или иной отрасли. Императивные нормы – категорические строго обязательные не допускающие отступлений и иной трактовки предписания. Императивными являются большинство норм права относящихся к различным его отраслям а исходные юридические нормы будут таковыми всегда.
27472. К какому виду относятся правоотношения собственности (обще-регулятивные, относительные, абсолютные, правильного ответа нет) 26 KB
  К какому виду относятся правоотношения собственности общерегулятивные относительные абсолютные правильного ответа нет Правовые отношения могут классифицироваться по различным основаниям: l в зависимости от предмета правового регулирования отраслевого признака они подразделяются на: конституционные административные уголовные гражданские и т.; ПС: материальные 3 в зависимости от функциональной роли на регулятивные возникают на основе норм права или договора и охранительныесвязаны с государственным принуждением и реализацией...
27473. К какому виду толкования норм права относятся Комментарии к законодательству, постановление Пленума Верховного Суда РФ по конкретному делу, распространенное на подобные дела в дальнейшем 34 KB
  Комментарии к законодательству – неофициальное доктринальное толкование. Постановление Пленума Верховного Суда РФ – официальное профессиональное нормативное толкование. Толкование деятельность соответствующих субъектов по уяснению и разъяснению смысла и содержания правовых норм а также результаты этой деятельности выраженные в интерпретационных актах актах толкования. 3 По субъекту – аутентическое и легальное а также толкование обыденное профессиональное и доктринальное.
27474. Перечислите и охарактеризуйте основные части правоприменительного акта 26.5 KB
  Перечислите и охарактеризуйте основные части правоприменительного акта. Акт применения права это такой правовой акт который содержит индивидуальное властное предписание вынесенное компетентным органом в результате решения конкретного юридического дела. Правоприменительный акт как итог правоприменительной деятельности характеризуется следующими особенностями: исходит от компетентных органов; носит государственновластный характер; носит индивидуальный персонифицированный а не нормативный характер поскольку адресован конкретным...