Студопедия — Волгоград
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Волгоград






 

Кафедра информатики и информатизации образования


Составитель: Глазов С.Ю., доцент кафедры общей физики ВГПУ

Программирование. ч.2. Основы программирования на языке Object Pascal.

Лабораторная работа №2 Стандартные компоненты

2013.


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

Стандартные компоненты

Цель работы:изучить стандартные компоненты Delphi (Kylix), научиться использовать компоненты библиотеки VCL в windows-приложениях.

В данной работе рассматриваются компоненты страницы Standard Палитры Компонент Delphi (Kylix). В предыдущей работе Вы познакомились с двумя стандартными компонентами TButton и TLabel. Теперь изучим все оставшиеся компоненты.

На первой странице Палитры Компонент размещены стандартные объекты. Все эти объекты такая же часть Windows, как мышь или окно. Набор и порядок компонент на каждой странице являются конфигурируемыми. Можно добавить к имеющимся компонентам новые, изменить их количество и порядок.

Стандартные компоненты Delphi перечислены ниже с некоторыми комментариями по их применению.

· Курсор - не компонент, а пиктограмма для быстрой отмены выбора какого-либо объекта.

· TMainMenu позволяет поместить главное меню в программу. При помещении TMainMenu на форму это выглядит, как просто иконка. Иконки данного типа называют "невидимыми компонентом", поскольку они невидимы во время выполнения программы. Создание меню включает три шага:

1. помещение TMainMenu на форму,

2. вызов Дизайнера Меню через свойство Items в Инспекторе Объектов,

3. определение пунктов меню в Дизайнере Меню и написание в Редакторе процедур обработки событий.

Основные свойства и события компонентов TMainMenu:

- Items содержит массив разделов меню типа TMenuItem, обладающих своими свойствами, методами, событиями (Объекты TMenuItem характеризуют разделы меню. Создаются эти объекты Дизайнером Меню, который вызывается двойным щелчком на компоненте меню. Каждой команде меню соответствует свой объект TMenuItem);

- Caption обозначает надпись раздела

- Name - имя объекта раздела

- ShortCut определяет клавиши быстрого доступа к разделу (клавишные эквиваленты). Пользователь для выполнения команды может воспользоваться определенной комбинацией клавиш, не прибегая к меню. Клавиши можно выбрать из раскрывающегося списка свойств или ввести в виде текста. Например, для закрытия приложения можно ввести в поле ShortCut символы ALT+X и в обработчике события закрыть приложение.

Другой способ облегчения доступа к пунктам меню заключается в создании клавиш мнемонического доступа. Для этого перед какой-нибудь буквой названия пункта меню необходимо поставить символ &. Например E&xit.

- Default определяет, является ли данный раздел разделом по умолчанию своего подменю, т.е. разделом, выполняемым при двойном щелчке пользователя на родительском разделе.

- Break используется в длинных меню, чтобы разбить список разделов на несколько столбцов.

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

- RadioItem, установленное в true, определяет, что данный раздел должен работать в режиме радиокнопки совместно с другими разделами, имеющими то же значение свойства GroupIndex.

- Для каждого раздела могут быть установлены во время проектирования или программно во время выполнения свойства Enabled (доступен) и Visible (видимый).

- Начиная с Delphi 4 предусмотрена возможность ввода в разделы меню изображений. За это ответственны свойства разделов Bitmap и ImageIndex. Первое из них позволяет непосредственно ввести изображение в раздел, выбрав его из указанного файла. Второе позволяет указать индекс изображения, хранящегося во внешнем компоненте класса TImageList (Закладка Win32). Указание на этот компонент вы можете задать в свойстве Images компонента TMainMenu.

- Основное событие раздела меню - OnClick, возникающее при щелчке пользователя на разделе или при нажатии "горячих" клавиш и клавиш быстрого доступа.

Любой пункт меню может иметь вложенное меню, которое можно получить в Дизайнере Меню, выбрав соответствующий пункт меню и нажав Ctrl + ®.

· TPopupMenu позволяет создавать всплывающие меню. Этот тип меню появляется по щелчку правой кнопки мыши. Создание объекта TPopupMenu ничем не отличается от разработки объектов класса TMainMenu.

· TLabel служит для отображения текста на экране. Для этого в свойство Caption нужно записать необходимый текст. Вы можете изменить шрифт и цвет текста, если дважды щелкнете на свойство Font в Инспекторе Объектов.

· TEdit - стандартный управляющий элемент Windows для ввода. Свойство Text может быть использовано для отображения короткого фрагмента текста и позволяет пользователю вводить текст во время выполнения программы. Текст, не помещающийся по длине в окно, просто сдвигается, и пользователь может перемещаться по нему с помощью курсора. Свойство AutoSize позволяет автоматически подстраивать высоту (но не ширину) окна под размер текста.

Окно редактирования снабжено многими функциями, свойственными большинству редакторов. Например, в нем предусмотрены типичные комбинации "горячих" клавиш: Ctrl-C - копирование выделенного текста в буфер обмена Clipboard (команда Copy), Ctrl-X - вырезание выделенного текста в буфер Clipboard (команда Cut), Ctrl-V - вставка текста из буфера Clipboard в позицию курсора (команда Paste), Ctrl-Z - отмена последней команды редактирования.

Свойство AutoSelect определяет, будет ли автоматически выделяться весь текст при передаче фокуса в окно редактирования. Его имеет смысл задавать равным true в случаях, когда при переключении в данное окно пользователь будет скорее заменять текущий текст, чем исправлять его. Имеются также свойства только времени выполнения SelLength, SelStart, SelText, определяющие соответственно длину выделенного текста, позицию перед первым символом выделенного текста и сам выделенный текст.

· TMemo - иная форма TEdit. Подразумевает работу с большими текстами. Выполняет функции большинства редакторов, имеет "горячие" клавиши для быстрого редактирования. Формат всего текста одинаков и определяется свойством Font.

Свойство Lines, доступное как во время проектирования, так и во время выполнения, имеет множество свойств и методов типа TStrings, которые обычно используются для формирования и редактирования текста. Весь текст содержится в свойстве Text.

TMemo имеет ограничения на объем текста в 32Кб, это составляет 10-20 страниц.

· TButton позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы. Поместив TButton на форму, Вы по двойному щелчку можете создать заготовку обработчика события нажатия кнопки. Далее нужно заполнить заготовку кодом (подчеркнуто то, что нужно написать вручную):

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Нажата кнопка!');
end
;

В результате, в процессе работы программы после нажатия на кнопку возникнет дополнительное окно с надписью 'Нажата кнопка!'.

· TCheckBox отображает строку текста с маленьким окошком рядом. В окошке можно поставить отметку, которая означает, что что-то выбрано. Индикаторы с флажком TCheckBox используются в приложениях в основном для того, чтобы пользователь мог включать и выключать какие-то опции, или для индикации состояния. При каждом щелчке пользователя на индикаторе его состояние изменяется, проходя в общем случае последовательно через три значения: выделение (появление черной галочки), промежуточное (серое окно индикатора и серая галочка) и не выделенное (пустое окно индикатора). Этим трем состояниям соответствуют три значения свойства State: cbChecked, cbGrayed, cbUnchecked. Все три состояния допускаются только при значении другого свойства AllowGrayed равном true

. Если же AllowGrayed = false (значение по умолчанию), то допускается только два состояния: выделенное и не выделенное. И State, и AllowGrayed можно устанавливать во время проектирования или программно во время выполнения.

Промежуточное состояние обычно используется, если индикатор применяется для отображения какой-то характеристики объекта. Например, если индикатор призван показать, какой регистр использовался при написании некоторого фрагмента текста, то в случае, если весь текст написан в верхнем регистре, индикатор может принимать выделенное состояние, если в нижнем - не выделенное, а если использовались оба регистра - промежуточное.

Проверять состояние индикатора можно не только по значению State, но и по значению свойства Checked. Если Checked равно true, то индикатор выбран, т.е. State = cbChecked. Если Checked равно false, то State равно cbUnchecked или cbGrayed. Установка Checked в true во время проектирования или выполнения автоматически переключает State в cbChecked.

Надпись в индикаторе задается свойством Caption, а ее размещение по отношению к индикатору - свойством Alignment.

Основное событие индикатора - OnClick, наступающее при щелчке на компоненте. В обработчике этого события можно анализировать свойства Checked и State, которые уже приняли новое значение.

· TRadioButton позволяет выбрать только одну опцию из нескольких. При включении одной кнопки группы остальные кнопки автоматически выключаются. Объединение радиокнопок осуществляется обычно панелями: TGroupBox, TPanel и др. Радиокнопки, размещенные непосредственно на форме, также образуют группу. Имеется также компонент группы радиокнопок TRadioGroup, в который не надо переносить кнопки - они присутствуют там изначально и располагаются регулярными рядами. Отдельные компоненты TRadioButton, объединенные контейнерами, имеет смысл использовать только при необходимости нерегулярного размещения кнопок.

Свойство Caption компонента TRadioButton содержит надпись, появляющуюся около кнопки. Значение свойства Alignment определяет, с какой стороны от кнопки появится надпись: taLeftJustify - слева, taRightJustify - справа (это значение принято по умолчанию). Свойство Checked определяет, выбрана ли данная кнопка пользователем, или нет. Поскольку в начале выполнения приложения обычно надо, чтобы одна из кнопок группы была выбрана по умолчанию, ее свойство Checked надо установить в true в процессе проектирования.

· TListBox Компонент отображает список строк и позволяет пользователю выбрать из него необходимые строки. В список автоматически добавляются полосы прокрутки, если все строки не помещаются в окне компонента.

Отличие TListBox от схожего по функциям компонента TComboBox заключается в следующем:

- TComboBox разрешает пользователю редактировать список, а TListBox не разрешает;

- в TComboBox список может быть развернут или свернут, а в TListBox он всегда развернут;

- TListBox может допускать множественный выбор, а в TComboBox пользователь всегда должен выбрать только один элемент.

Основное свойство компонента, содержащее список строк, - Items, имеющее тип TStrings. Заполнить его во время проектирования можно, нажав кнопку с многоточием около этого свойства в окне Инспектора Объектов. Во время выполнения работать с этим свойством можно, пользуясь свойствами и методами класса TStrings - Clear, Add и другими.

В компоненте TListBox имеется свойство MultiSelect, разрешающее пользователю множественный выбор в списке. Если MultiSelect = false (значение по умолчанию), то пользователь может выбрать только один элемент списка. В этом случае можно узнать индекс выбранной строки из свойства ItemIndex, доступного только во время выполнения. Если ни одна строка не выбрана, то ItemIndex = -1. Начальное значение ItemIndex невозможно задать во время проектирования. По умолчанию ItemIndex = -1. Это означает, что ни один элемент списка не выбран. Если вы хотите задать этому свойству какое-то другое значение, т.е. установить выбор по умолчанию, который будет показан в момент начала работы приложения, то сделать это можно, например, в обработчике события OnCreate формы, введя в него оператор вида

ListBox1.ItemIndex:=0;

Если допускается множественный выбор (MultiSelect = true), то значение ItemIndex соответствует тому элементу списка, который находится в фокусе. При множественном выборе проверить, выбран ли данный элемент, можно проверив свойство Selected[Index: Integer] типа Boolean.

На способ множественного выбора при MultiSelect = true влияет еще свойство ExtendedSelect. Если ExtendedSelect = true, то пользователь может выделить интервал элементов, выделив один из них, затем нажав клавишу Shift и переведя курсор к другому элементу. Выделить не прилегающие друг к другу элементы пользователь может, если будет удерживать во время выбора нажатой клавишу Ctrl. Если же ExtendedSelect = false, то клавиши Shift и Ctrl при выборе не работают.

Свойство Columns определяет число столбцов, в которых будет отображаться список, если он не помещается целиком в окне компонента ListBox.

Свойство Sorted позволяет упорядочить список по алфавиту. При Sorted = true новые строки в список добавляются не в конец, а по алфавиту.

Свойство Style, установленное в lbStandard (значение по умолчанию) соответствует списку строк. Другие значения Style позволяют отображать в списке не только текст, но и изображения.

Имеется еще один компонент, очень похожий на TListBox - это список с индикаторами TCheckListBox. Выглядит он так же, как TListBox, но около каждой строки имеется индикатор, который пользователь может переключать.

· TComboBox во многом напоминает ListBox, за исключением того, что позволяет водить информацию в маленьком поле ввода сверху ListBox. Стиль изображения списка определяется свойством Style: csDropDown - выпадающий список со строками одинаковой высоты и с окном редактирования, позволяющим пользователю вводить или редактировать текст; csSimple -развернутый список со строками одинаковой высоты и с окном редактирования, позволяющим пользователю вводить или редактировать текст; csDropDownList - выпадающий список со строками одинаковой высоты, не содержащий окна редактирования. Свойство MaxLength определяет максимальное число символов, которые пользователь может ввести в окно редактирования. Если MaxLength = 0, то число вводимых символов не ограничено. Текст выбранной или написанной пользователем строки находится в свойстве Text. Индекс выбранной строки можно узнать из свойства ItemIndex.

Основное событие компонента - OnChange наступает при изменении текста в окне редактирования в результате прямого редактирования текста или в результате выбора из списка.

· TScrollbar - полоса прокрутки,появляется автоматически в объектах редактирования, ListBox’ах при необходимости прокрутки текста для просмотра. Основное свойства TScrollBar - Position. Оно отражает положение бегунка. Это свойство можно задавать во время проектирования или программно во время выполнения. Свойство Position - целое, значение которого может изменяться в пределах, задаваемых свойствами Min и Max. По умолчанию Min

= 0, Max = 100, так что Position может принимать значения - от 0 до 100. Если задать большее или меньшее значение Max, соответственно увеличится или уменьшится количество возможных значений Position в диапазоне Min - Max.Свойство Kind, определяет горизонтальное или вертикальное расположение полосы и принимает соответственно значения sbHorizontal или sbVertical.

Имеются два свойства - SmallChange и LargeChange, определяющих соответственно "малый" сдвиг при щелчке на кнопке в конце полосы или нажатии клавиши со стрелкой, и "большой" сдвиг при перемещении на страницу щелчком рядом с бегунком или нажатием клавиш PageUp или PageDown.

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

scLineUp, scLineDown - "Малый" сдвиг: перемещение соответственно вверх или налево и вниз или вправо после нажатия кнопки полосы прокрутки или клавиши со стрелкой;

scPageUp, scPageDown - "Большой" сдвиг: перемещение на страницу щелчком рядом с бегунком или нажатием клавиш PageUp или PageDown;

scPosition - Пользователь переместил и освободил бегунок;

scTrack - Пользователь перемещает бегунок;

scTop, scBottom - Бегунок перемещен соответственно в крайнюю верхнюю или левую позицию и в крайнюю нижнюю или правую позицию;

scEndScroll - Окончание перемещения.

В обработке события ScrollPos можно поместить операторы, перемещающие требуемую область формы или компонент, а можно поместить операторы, которые управляют некоторым компонентом, используя значение позиции бегунка ScrollPos.

· TGroupBox - панель-контейнер с рамкой и надписью, объединяющий группу связанных органов управления.

· TPanel - управляющий элемент, похожий на TGroupBox, используется в декоративных целях. Чтобы использовать TPanel, просто поместите его на форму и затем положите другие компоненты на него. Теперь при перемещении TPanel будут передвигаться и эти компоненты. TPanel используется также для создания линейки инструментов и окна статуса.

· TScrollBox представляет место на форме, которое можно скроллировать в вертикальном и горизонтальном направлениях. Пока Вы в явном виде не отключите эту возможность (свойство AutoScroll), форма сама по себе действует так же. Однако, могут быть случаи, когда понадобится прокручивать только часть формы. В таких случаях используется TScrollBox.

Если Вам нужна дополнительная информация, то выберите на Палитре объект и нажмите клавишу F1 - появится Справочник с полным описанием данного объекта.

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

1. Создайте приложение, которое при нажатии на кнопку TButton выводит дополнительное диалоговое окно с надписью 'Hello World!'.

2. Создайте приложение, в котором информация вводится в компонент класса TEdit и по нажатию на кнопку TButton передается в компонент класса TLabel.

3. Создайте приложение с главным меню (компонент класса TMainMenu). Для некоторых пунктов меню добавьте изображение. Для этого в компонент класса TImageList загрузите рисунки из C:\Program Files\Common Files\Borland Shared\Images\Buttons и свяжите их с компонентом TMainMenu. Результат сравните с примером, который находится в каталоге с лабораторной работой \Example1.

4. Создайте приложение, в котором с каждым компонентом (TMemo, TPanel, TListBox), размещенном на окне, связано контекстно-зависимое меню (TPopupMenu ). Результат сравните с примером, который находится в каталоге \Example2.

5. Создайте приложение, в котором используется радиогруппа из TRadioButton и TPanel. При выборе каждого пункта радиогруппы, ее название должно заноситься компонент класса TMemo (Этот же пример проделайте с компонентом класса TRadioGroup). Результат сравните с примером, который находится в каталоге \Example3.


 







Дата добавления: 2015-08-27; просмотров: 437. Нарушение авторских прав; Мы поможем в написании вашей работы!



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

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

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Прием и регистрация больных Пути госпитализации больных в стационар могут быть различны. В цен­тральное приемное отделение больные могут быть доставлены: 1) машиной скорой медицинской помощи в случае возникновения остро­го или обострения хронического заболевания...

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

Общая и профессиональная культура педагога: сущность, специфика, взаимосвязь Педагогическая культура- часть общечеловеческих культуры, в которой запечатлил духовные и материальные ценности образования и воспитания, осуществляя образовательно-воспитательный процесс...

Устройство рабочих органов мясорубки Независимо от марки мясорубки и её технических характеристик, все они имеют принципиально одинаковые устройства...

Ведение учета результатов боевой подготовки в роте и во взводе Содержание журнала учета боевой подготовки во взводе. Учет результатов боевой подготовки - есть отражение количественных и качественных показателей выполнения планов подготовки соединений...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия