Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Лабораторная работа 7 Компоненты TStringGrid TTreeView TPgeControl THederControl и THeder Цель работы- изучить часто используе

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 9.11.2024

Лабораторная работа №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.  Предложите способ ввода информации о структуре государственного управления РФ.




1. Информатика 20092010 уч
2. Слово о Законе и Благодати митрополита Илариона; Сказание о Борисе и Глебе Житие Феодосия Печерского
3. Курсовая работа- Расчет и подбор теплоутилизационного контура
4. Тема 8. Учет материальнопроизводственных запасов
5. РЕФЕРАТ дисертації на здобуття наукового ступеня доктора ветеринарних наук Харків ~р.html
6. достаточно сложный институт жилищного права тесно связанный с другими его институтами
7. Тюменская государственная сельскохозяйственная академия Механикотехнологический институт Кафедра С
8. СТРОИТЕЛЬНАЯ МЕХАНИКА ДЛЯ СТУДЕНТОВ НАПРАВЛЕНИЯ 270100 СТРОИТЕЛЬСТВО
9. ИСИХАЗМ
10. Тема 18 Законность правопорядок и общественный порядок Понятие и основные принципы законности; Гара
11. Мысли на миллион Участник УО Вопрос Итого
12. корсарском раю ВестИндии
13. 1890 гг в Ясной Поляне Картины Яснополянской жизни в 1890-х годах
14. Активаторы стволовых клеток кожи
15. Задание 2 Численность населения города А Чел 74162
16. .Зарождение и основные этапы развития экономической теории
17. Экономика заочной полной и сокращенной формы обучения Тюменский государственный ун
18. Обзор Палитры Delphi
19. реферат дисертації на здобуття наукового ступеня кандидата сільськогосподарських наук Льві
20. Иррационализм ограничивает или отрицает возможности разума в процессе познания и делает основой миропон