10225

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

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

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

Лабораторная работа № 2 Стандартные компоненты Цель работы: изучить стандартные компоненты Delphi научиться использовать компоненты библиотеки VCL в windowsприложениях. В данной работе рассматриваются компоненты страницы Standard Палитры Компонент Delphi. В предыдущей работе...

Русский

2013-03-24

83.5 KB

24 чел.

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

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

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

В данной работе рассматриваются компоненты страницы Standard Палитры Компонент Delphi. В предыдущей работе Вы познакомились в двумя стандартными компонентами 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.

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

  1.  Что понимается в Object Pascal под объектом и классом?
  2.   Какой компонент называется визуальным?
  3.  Каково предназначение компонентов класса TMainMenu?
  4.  Когда в приложении используют компоненты класса TPopupMenu?
  5.  Перечислите и опишите Вами изученные компоненты, предназначенные для ввода информации.
  6.  Как осуществляется работа с выделенным текстов в компоненте класса TEdit?
  7.  Какие объекты создаются на основе типа TSrings, как с ними работать?
  8.  Сходство и отличие компонентов TComboBox и TListBox?
  9.  В каких целях используется компонент TScrollBar?
  10.  Перечислите и опишите Вами изученные компоненты – контейнеры.


 

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

81142. Сущность социальной организации. Миссия, цель организации 40.13 KB
  Миссия цель организации. формализация отношений в организации и нормативная регуляция поведения членов данной организации. Структура организации.
81143. Элементы организации 69.88 KB
  Организации это весьма изменчивые и высокосложные социальные образования. Социальная структура является центральным элементом любой организации. Она относится к шаблонным или регулируемым аспектам взаимоотношений между участниками организации.
81144. Основные понятия теории управления персоналом организации 39.82 KB
  В последние 50 лет термин управление персоналом использовался для описания функции управления посвященной найму развитию обучению ротации обеспечению безопасности и увольнению персонала. Управление персоналом вид деятельности по руководству людьми направленный на достижение целей фирмы предприятия путем использования труда опыта таланта этих людей с учетом их удовлетворенности трудом. В современном подходе управление персоналом включает: планирование потребности в квалифицированных сотрудниках; составление штатного расписания и...
81145. Современные модели управления 262.4 KB
  На сегодня многие признают концепцию управления персоналом известного российского ученого в области менеджмента Л. В рамках органической парадигмы последовательно сложились вторая концепция управления персоналом и третья концепция управления человеческими ресурсами. Научной основой концепции управления персоналом развивавшейся с 30х гг.
81146. Групповая динамика 36.19 KB
  Группа четко ограниченная в размерах совокупность людей которая вычленяется из широкого социума как некая отдельная психологически самоценная общность объединенная в логике какихлибо значимых оснований: специфика заданной и реализуемой деятельности социально оцениваемая принадлежность к определенной категории людей входящих в группу структурнокомпозиционная объединенность и т. Группа социальная объединения людей имеющих общие значимые специфические признаки основанные на их участии в некоторой деятельности связанной системой...
81147. Виды и характеристика больших социальных групп 35.42 KB
  Среди больших групп принято выделять также такие социальные группы как интеллигенция служащие представители умственного и физического труда население города и деревни. Иногда в литературе встречается и довольно широкое толкование интеллигенции включающее всех работников умственного труда в том числе служащих секретарей контролеров банка и т. Роль интеллигенции в обществе определяется выполнением ею следующих функций: научнотехническое и экономическое обеспечение материального производства; профессиональное управление производством...
81148. Инертная, оптимальная и агрессивная среда. Управление в условиях агрессивной среды 38.71 KB
  Источниками конфликта может служить конкуренция соперничество враждебность противоречивые намерений и т. В результате конфликта происходит столкновение двух или более противоборствующих сторон и выражается в том что они осознаются на уровне социального субъекта: отдельной личности или социальной группы. В сущности конфликта важное место занимают такие понятия как участник и субъект конфликта. Участником конфликта может быть отдельный человек организация или группа лиц которые не отдают себе отчет о целях и задачах конфликтного...
81149. Способы управления организацией в условиях агрессивной среды 35.04 KB
  Способами управления в агрессивной социальной среде могут быть: социальное прогнозирование; социальное планирование; социальное регулирование. Деловые организации пытаясь отстоять свое место в социальном пространстве вынуждены применять такие способы управления как: нарушение закона с целью адаптации к негативным реалиям организационной среды; использование взятки как способ обеспечения коммуникаций и т. Главное правило управления в агрессивной среде заключается в том чтобы по возможности ее избегать.
81150. Социология управления как отрасль социологического знания 34.51 KB
  В Российской социологической энциклопедии социология управления определяется как отрасль социологического знания изучающая систему и процессы управления в условиях складывающихся в обществе социальных отношений. Удальцовой наука изучающая социальные отношения и устанавливающая основные критерии эффективности их функционирования с точки зрения всех субъектов социальных отношений называется социологией и психологией управления в организации. Как научная дисциплина социология управления пересекается с такими разделами социологической науки...