русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ТЕМА № 2 КОМПОНЕНТЫ DELPHI


Дата добавления: 2014-11-28; просмотров: 8603; Нарушение авторских прав


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

 

2.1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

 

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

свойствами (цвет, текст на кнопке, шрифт текста и т. д.);

событиями (например, нажатие на кнопку);

методами (например, метод прорисовки текста, фокуса и т. д.).

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

Свойства - это переменные, которые влияют на состояние объекта.

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

События - это те же процедуры и функции, которые вызываются при наступлении определенного события. Например, если изменилось какое-то свойство объекта, может быть сгенерировано соответствующее событие и вызвана процедура, которая инициализирует реакцию приложения на это событие.

Рассмотрим пример. Пусть пользователь нажал на кнопку. В этом случае она, как объект, генерирует соответствующее событие. В результате этого может быть вызвана процедура-обработчик, которую вы назначили кнопке при возникновении данного события. В этом случае не требуется никакая дополнительная информация, поэтому объект не будет пересылать вам никаких параметров, кроме указателя на самого себя. Однако, если нужно обработать событие, связанное с перемещением курсора мыши, дело будет обстоять несколько иначе. В этом случае объект будет генерировать событие и автоматически передавать вам новые координаты X и Y курсора, поэтому процедура должна быть объявлена с соответствующими параметрами, чтобы можно было принять их от объекта.



Компоненты в Delphi — это особые объекты, которые являются строительными кирпичиками среды визуальной разработки и приспособлены к визуальной установке свойств.

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

Компоненты располагаются на соответствующих вкладках палитры компонентов на главном окне. Все основные компоненты Delphi находятся на первых четырёх вкладках (при стандартной их расстановке). Их названия всплывают в виде подсказок при наведении мышки на пиктограммы. Чтобы перенести компонент на форму, нужно щёлкнуть на нем мышкой, и затем щёлкнуть в том месте формы, где его предполагается разместить.

Таблица 1 - Основные элементы палитры компонентов Delphi

Пикто-грамма Имя Назначение
Вкладка «Standard»
MainMenu Главное меню программы. Компонент способен создавать и обслуживать сложные иерархические меню.
PopupMenu Всплывающее меню. Обычно это меню появляется после нажатия правой кнопкой мыши.
Label Метка. Используется для размещения не очень длинных сообщений в виде статического текста
Edit Строка ввода. Предназначена для ввода пользователем текстовой информации в виде одной строки.
Memo Многострочный текстовый редактор. Используется для ввода и отображения многострочного текста без функций форматирования.
Button Командная кнопка. Используется для реализации в программе команд с помощью обработчика события onclick этого компонента.
CheckBox Независимый переключатель. Используется его свойство Checked (отмечено), имеющее значения true или false, меняющееся при щелчке мышью.
RadioButton Зависимый переключатель. Используется для выбора одного из нескольких вариантов. Для этого компонент объединяется как минимум с одним или компонентом в группу. Щелчок по компоненту приводит к его выделению и снятию выделения ранее выбранного компонента.
ListBox Список выбора. Содержит список предлагаемых вариантов (опций) и даёт возможность проконтролировать текущий выбор.
ComboBox "Выпадающий" список выбора. Представляет собой комбинацию компонентов Edit и ListBox.
GroupBox Контейнер группы компонентов. Используется для группировки нескольких связанных по смыслу компонентов.
RadioGroup Группа зависимых переключателей. Содержит специальные свойства для обслуживания нескольких связанных зависимых переключателей.
Panel Панель. Этот компонент, как и GroupBox, служит для объединения нескольких компонентов.
Вкладка «Additional»
StringGrid Таблица, содержащая строки. Компонент StringGrid предназначен в первую очередь для отображения таблиц текстовой информации.
Bevel Фаска. Имеет декоративное назначение.
Splitter Разделитель. Предоставляет пользователю возможность перемещать границы, разделяющие различные визуальные компоненты, изменяя их относительные размеры.

 

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

Обычно на форму помещается один компонент MainMenu. В этом случае его имя автоматически заносится в свойство формы Menu. Основное свойство компонента - Items. Его заполнение производится с помощью Конструктора Меню, вызываемого двойным щелчком на компоненте MainMenu или нажатием кнопки с многоточием рядом со свойством Items в окне Инспектора Объектов.

Из контекстного меню вы можете также выполнить команду "Create Submenu", позволяющую ввести подменю в выделенный раздел.

Свойство Caption обозначает надпись раздела. Если вы в качестве значения Caption очередного раздела введен символ минус «-», то вместо раздела в меню появится разделитель.

Свойство Shortcut определяет клавиши быстрого доступа к разделу меню – «горячие» клавиши, с помощью которых пользователь, не заходя в меню, может в любой момент вызвать выполнение процедуры, связанной с данным разделом.

PopupMenu- контекстное меню привязано к конкретным компонентам. Оно всплывает, если во время, когда данный компонент в фокусе, пользователь щелкнет правой кнопкой мыши. Формирование контекстного всплывающего меню производится с помощью Конструктора Меню, вызываемого двойным щелчком на PopupMenu, точно так же, как это делалось для главного меню.

Label - используется для отображения различных надписей на форме. Отображаемый текст определяется значением свойства Caption. Его можно устанавливать в процессе проектирования или задавать и изменять программно во время выполнения приложения. Например: Label1.Caption := 'Новый текст';

Если требуется отобразить числовую информацию, можно воспользоваться функциями FloatToStr и IntToStr, переводящими соответственно числа с плавающей запятой и целые в строку. Для формирования текста, состоящего из нескольких фрагментов, можно использовать операцию «+», которая для строк означает их склеивание. Например, если в программе имеется целая переменная I, отображающая число сотрудников некоторой организации, то вывести в метку Label1 информацию об этом можно оператором: Label1.Caption := 'Число сотрудников: '+IntToStr(I);

В Label имеется свойство Wordwrap – допустимость переноса слов длинной надписи, превышающей длину компонента, на новую строчку. Чтобы такой перенос мог осуществляться, надо установить свойство WordWrap в true, свойство AutoSize в false (чтобы размер компонента не определялся размером надписи) и сделать высоту компонента такой, чтобы в нем могло поместиться несколько строк. Если WordWrap не установлено в true при AutoSize равном false, то длинный текст, не помещающийся в рамке метки, просто обрезается.

Edit – строка ввода. В компоненте Edit вводимый и выводимый текст содержится в свойстве Text. Это свойство можно устанавливать в процессе проектирования или задавать программно.

Свойство AutoSelect определяет, будет ли автоматически выделяться весь текст при передаче фокуса в окно редактирования. Имеются также свойства только времени выполнения SelLength, SelStart, SelText, определяющие соответственно длину выделенного текста, позицию перед первым символом выделенного текста и сам выделенный текст. Если вы хотите, чтобы пользователь мог вводить в окно редактирования Edit только цифры и символ точки, вы можете в обработчик события OnKeyPress этого компонента вставить следующий код: if not (Key in ['0'..'9', ',']) then Key := #0;

Свойство MaxLength определяет максимальную длину вводимого текста. Если MaxLength = 0, то длина текста не ограничена.

Свойство Modified, доступное только во время выполнения, показывает, проводилось ли редактирование текста в окне.

Свойство PasswordChar позволяет превращать окно редактирования в окно ввода пароля. По умолчанию значение PasswordChar равно #0 – нулевому символу. В этом случае это обычное окно редактирования. Но если в свойстве указать иной символ (например, символ звездочки «*»), то при вводе пользователем текста в окне будут появляться именно эти символы, а не те, которые вводит пользователь.

Memo - является компонентом для редактирования многострочного текста. В компоненте Memo формат (шрифт, его атрибуты, выравнивание) одинаков для всего текста и определяется свойством Font. Основное свойство компонента Memo - Lines, содержащее текст окна в виде списка строк и имеющее тип TStrings. Весь текст, представленный одной строкой типа String, внутри которой используются разделители типа символов возврата каретки и перевода строки, содержится в свойстве Text.

Доступ к отдельной строке текста можно получить с помощью свойства Strings[Index: Integer]. Индексы, как и везде в Delphi, начинаются с 0. Так что Memo1.Lines.Strings[0] - это текст первой строки. Учтите, что если окно редактирования изменяется в размерах при работе с приложением и свойство WordWrap = true, то индексы строк будут изменяться при переносах строк, так что в этих случаях индекс мало о чем говорит.

Свойство только для чтения Count указывает число строк в тексте.

Для очистки текста в окне надо выполнить метод Clear.

Для занесения новой строки в конец текста окна редактирования можно воспользоваться методами Add или Append свойства Lines. Для загрузки текста из файла применяется метод LoadFromFile. Сохранение текста в фале осуществляется методом SaveToFile.

Загрузка в окно Memo1 текста из файла может осуществляться командой:

Memo1.Lines.LoadFromFile ('text.txt');

Сохранение текста в файле может осуществляться командой:

Memo1.Lines.SaveToFile('text.txt');

Button - простейший и наиболее часто используемый компонент. Основное с точки зрения внешнего вида свойство кнопки - Caption (надпись). В надписях кнопок можно предусматривать использование клавиш ускоренного доступа, выделяя для этого один из символов надписи. Перед символом, который должен соответствовать клавише ускоренного доступа, ставится символ амперсанта «&». Этот символ не появляется в надписи, а следующий за ним символ оказывается подчеркнутым. Тогда пользователь может вместо щелчка на кнопке нажать в любой момент клавишу Alt совместно с клавишей выделенного символа.

Например, если в вашем приложении имеется кнопка выполнения какой-то операции, вы можете задать ее свойство Caption равным «&Выполнить». На кнопке эта надпись будет иметь вид «Выполнить». И если пользователь нажмет клавиши Alt+В, то это будет эквивалентно щелчку на кнопке.

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

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

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

RadioGroup – это панель группы радиокнопок, которая может содержать регулярно расположенные столбцами и строками радиокнопки. А надписи кнопок и их количество определяются свойством Items, имеющим тип TStrings. Щелкнув на кнопке с многоточием около этого свойства в окне Инспектора Объектов, вы попадете в редактор списков строк.

В случаях, когда желательно нерегулярное расположение кнопок целесообразно использовать RadioButton, сгруппированные панелью GroupBox. Панель GroupBox выглядит на форме так же, как RadioGroup, и надпись в ее верхнем левом углу также определяется свойством Caption. Эта панель сама по себе пустая. Ее назначение – служить контейнером для других управляющих элементов, в частности, для радиокнопок RadioButton.

ListBox - компонент, обеспечивающий выбор из списка. Компоненты ListBox и ComboBox отображают списки строк. Они отличаются друг от друга прежде всего тем, что ListBox только отображает данные и позволяет пользователю выбрать из них то, что ему надо, а ComboBox позволяет также редактировать данные. Основное свойство обоих компонентов, содержащее список строк, - Items, имеющее рассмотренный ранее тип TStrings. Добавление строк осуществляется с помощью метода Add свойства Items: ListBox.Items.Add('текст строки').

В компоненте ListBox имеется свойство MultiSelect, разрешающее пользователю множественный выбор в списке.

ComboBox – «выпадающий» список выбора. Стиль изображения этого компонента определяется свойством Style, которое может принимать следующие основные значения: csDropDown - выпадающий список со строками одинаковой высоты и с окном редактирования, позволяющим пользователю вводить или редактировать текст; csSimple - развернутый список со строками одинаковой высоты и с окном редактирования, позволяющим пользователю вводить или редактировать текст; csDropDownList - выпадающий список со строками одинаковой высоты, не содержащий окна редактирования.



<== предыдущая лекция | следующая лекция ==>
Interface | Panel, Splitter, GroupBox, Bevel


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.284 сек.