Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка Фролов

.pdf
Скачиваний:
15
Добавлен:
14.03.2016
Размер:
840.19 Кб
Скачать

боты);

– ~PAS, ~DFM backup файлы.

Для просмотра и удаления модулей и форм, входящих в проект, а также для добавления новых, удобно пользоваться Менеджером проектов (Project Manager), доступным в пункте главного меню View – Project Manager.

2.5. Основные компоненты

2.5.1. Панель стандартных компонентов (Standard)

Рис. 2.5. Панель стандартных компонентов

1. Frame представляет собой нечто среднее между панелью (Panel) и формой (Form).

С формой его роднит то, что он:

проектируется как самостоятельное окно;

имеет свой модуль – файл *.pas;

имеет возможности наследования;

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

С панелью фрейм роднит то, что он:

не является самостоятельным окном Windows и может отображаться только на форме или другом контейнере;

имеет свойства, методы, события, подобные панели, а не форме.

61

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

2.MainMenu позволяет поместить главное меню в программу. При помещении MainMenu на форму оно выглядит как иконка. Иконки данного типа называют "невидимыми компонентами", поскольку они невидимы во время выполнения программы.

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

внужные моменты это свойство можно изменять, меняя соответственно состав главного меню приложения.

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

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

Каждый раздел меню, т. е. каждый элемент свойства Items, является объектом типа TMenuItem, обладающим своими свойствами, методами и событиями.

3.PopupMenu позволяет создавать всплывающие меню. Этот тип меню появляется по щелчку правой кнопки мыши на объекте, к которому привя-

62

зано данное меню. У всех видимых объектов имеется свойство PopupMenu, где и указывается имя требуемого объекта PopupMenu. Создается PopupMenu аналогично главному меню.

4.Label служит для отображения текста на экране. Текст, отображаемый в компоненте Label, определяется значением свойства Caption. Это свойство можно устанавливать в процессе проектирования программы или задавать и изменять во время ее выполнения. Например LabelXX.Caption := 'Требуемый текст'. Для формирования текста, состоящего из нескольких фрагментов, можно использовать операцию «+», которая для строк означает их склеивание. Например, если в программе имеется некая целая переменная x, то вывести ее в метку LabelXX вместе с комментарием можно оператором: LabelXX.Caption := 'Значение переменной x равно' +IntToStr(x) (описание функции IntToStr см. в табл. 2.3).

5.Edit – стандартный управляющий элемент Windows для ввода. Он может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить данные во время выполнения программы.

Ввод данных из объекта Edit осуществляется обращением к свойству

Text. Инструкция ввода числовых данных в этом случае имеет вид: x := StrToFloat(EditXX.Text). Функция StrToFloat(Строка : string) относится к функциям преобразования и осуществляет преобразование строки, изображающей вещественное число, в число. Некоторые другие функции преобразования приведены в табл. 2.3.

 

 

Таблица 2.3

Функции преобразования

 

 

 

Преобразование

 

Описание

 

 

 

Int (Выражение : extended) : extended

 

Возвращает целую часть

 

 

 

Trunc (Выражение : extended) : integer

 

Возвращает целую часть

 

 

 

Round (Выражение : extended) : int64

 

Округляет до ближайшего целого

 

 

 

 

63

 

Окончание табл. 2.3

Преобразование

Описание

 

 

IntToStr (Выражение : int64) : string

Преобразует числовое выражение целого

 

типа в строку

 

 

FloatToStr (Выражение : extended) : string

Преобразует вещественное число в его

 

изображение (строку)

 

 

FloatToStrF (Выражение : extended, Фор-

Преобразует вещественное число в его

мат : TFloatFormat, Точность, Количество

изображение (строку) с возможностью

Цифр : integer) : string

выбора способа изображения. Переменная

 

формат может быть следующих типов:

 

ffCurrency, ffExponent, ffFixed, ffGeneral,

 

ffNumber

 

 

StxToInt (Строка : string) : integer

Преобразует строку, изображающую це-

 

лое или вещественное число, в число

 

 

6.Memo – иная форма Edit. Осуществляет работу с большими текстами. Memo может переносить слова, сохранять в буфер обмена фрагменты текста и восстанавливать их, а также выполняет другие основные функции редактора. Memo имеет ограничения на объем текста в 32Кб, что составляет 10–20 страниц.

7.Button позволяет выполнить какие-или действия при нажатии кнопки во время выполнения программы.

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

Например, если в приложении имеется кнопка выполнения какой-то

64

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

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

Свойство Cancel, если его установить в true, определяет, что нажатие пользователем клавиши Esc будет эквивалентно нажатию на данную кнопку.

Свойство Default, если его установить в true, определяет, что нажатие пользователем клавиши ввода Enter будет эквивалентно нажатию на данную кнопку, даже если данная кнопка в этот момент не находится в фокусе. Правда, если в момент нажатия Enter в фокусе находится другая кнопка, то все-таки сработает именно кнопка в фокусе.

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

9.RadioButton предлагает пользователю набор альтернатив, из которых выбирается одна. Набор реализуется требуемым количеством объектов

65

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

еесвойство Checked надо установить в true в процессе проектирования.

10.ListBox используется для показа прокручиваемого списка. Классический пример ListBox в среде Windows – выбор файла из списка в пункте меню File – Open многих приложений. Названия файлов или директорий и находятся в ListBox. Индекс выбранной строки можно узнать из свойства

ItemIndex.

11.ComboBox объединяет функции ListBox и Edit. Позволяет или ввести текст, или выбрать его из списка.

12.Scrollbar представляет собой стандартную линейку прокрутки Windows и служит для управления положением видимой части форм или компонентов. Основные свойства ScrollBar Position, Min и Мах. Свойство Position – целое, значение которого может изменяться в пределах, задаваемых свойствами Min и Мах. Свойство Kind определяет горизонтальное или вертикальное расположение полосы и принимает соответственно значения sbHorizontal или sbVertical.

13.GroupBox является контейнером, объединяющим группу связанных органов управления, таких как RadioButton, Checkbox и т.д.

14.RadioGroup используется аналогично GroupBox, но только для группировки объектов RadioButton. Определить, какая из кнопок выбрана, можно по свойству ItemIndex, которое показывает индекс выбранной кнопки. Индексы в Delphi всегда начинаются с 0. По умолчанию ItemIndex = -1, что означает отсутствие выбранной кнопки. Если необходимо, чтобы в

66

момент начала выполнения приложения какая-то из кнопок была выбрана (это практически всегда необходимо), то требуется установить соответствующее значение ItemIndex во время разработки. Если объекты RadioButton используются не для ввода, а для отображения данных, устанавливать значение ItemIndex можно программно во время выполнения приложения.

15.Panel является контейнером для группирования органов управления

именьших контейнеров. Панель можно использовать также для построения полос состояния, инструментальных панелей, палитр инструментов.

16.ActionList обеспечивает диспетчеризацию событий компонентов.

2.5.2. Панель диалогов (Dialogs)

Панель диалогов (рис. 2.6) содержит компоненты, используемые для создания различных диалоговых окон, общепринятых в приложениях Windows. Диалоги используются для указания файлов или выбора установок. Применение включенных в Delphi диалоговых окон помогает сэкономить время на разработку и придать приложению совместимость с принятыми в Windows нормами диалога.

Рис. 2.6. Панель диалогов

1. OpenDialog предназначен для создания окна диалога «Открыть файл».

Большинство свойства компонентов OpenDialog, SaveDialog,

67

OpenPictureDialog, SavePictureDialog одинаковы, только их смысл не-

сколько различен для открытия и закрытия файлов. Основное свойство, в котором возвращается в виде строки выбранный пользователем файл – FileName. Значение этого свойства можно задать и перед обращением к диалогу. Тогда оно появится в диалоге как значение по умолчанию в окне «Имя файла». Приведем пример использования диалога открытия файла:

procedure TForm1.N5Click(Sender: TObject); begin

if OpenDialog1.Execute then begin

AssignFile(File, OpenDialog1.FileName);

………………………………………..

CloseFile(File); end;

end;

В приведенном примере диалог открытия файла активируется по выбору соответствующего пункта главного меню (MainMenu).

Типы искомых файлов, появляющиеся в диалоге в выпадающем списке "Тип файла", задаются свойством Filter. В процессе проектирования это свойство проще всего задать с помощью редактора фильтров, который вызывается нажатием кнопки с многоточием около имени этого свойства в Инспекторе Объектов. При этом открывается окно редактора, в левой панели «Filter Name» которого записывается тот текст, который виден пользователю в выпадающем списке «Тип файла» диалога. А в правой панели «Filter» записываются разделенные точками с запятой шаблоны фильтра.

Свойство FilterIndex определяет номер фильтра, который будет по умолчанию показан пользователю в момент открытия диалога. Например, значение FilterIndex = 1 задает по умолчанию первый фильтр.

68

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

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

Свойство Title позволяет задать заголовок диалогового окна. Если это свойство не задано, окно открывается с заголовком, определенным в системе.

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

ofAllowMultiSelect – позволяет пользователю выбирать несколько файлов;

ofCreatePrompt – в случае, если пользователь написал имя несуществующего файла, появляется замечание и запрос, надо ли создать файл с заданным именем;

ofEnableIncludeNotify –разрешает посылать в диалог сообщения;

ofEnableSizing – разрешает пользователю изменять размер диалогового окна;

ofExtensionDifferent – этот флаг, который можно прочитать после выполнения диалога, показывает, что расширение файла, выбранного пользователем, отличается от DefaultExt;

ofFileMustExist – в случае, если пользователь написал имя несуществующего файла, появляется сообщение об ошибке;

69

ofHideReadOnly – удаляет из диалога индикатор «Открыть только для чтения»;

ofNoChangeDir – после щелчка пользователя на кнопке «OK» восстанавливает текущий каталог, независимо от того, какой каталог был открыт при поиске файла;

ofNoDereferenceLinks – запрещает переназначать клавиши быстрого доступа в диалоговом окне;

ofNoLongNames – отображаются только не более 8 символов имени и трех символов расширения;

ofNoNetworkButton – убирает из диалогового окна кнопку поиска в сети. Действует только если флаг ofOldStyleDialog включен;

ofNoReadOnlyReturn – если пользователь выбрал файл только для чтения, то генерируется сообщение об ошибке;

ofNoTestFileCreate – запрещает выбор в сети защищенных файлов и не доступных дисков при сохранении файла;

ofNoValidate – не позволяет писать в именах файлов неразрешенные символы, но не мешает выбирать файлы с неразрешенными символами;

ofOldStyleDialog – создает диалог выбора файла в старом стиле

(Delphi 1);

ofOverwritePrompt – в случае, если при сохранении файла пользователь написал имя существующего файла, появляется замечание, что файл с таким именем существует, и запрашивается желание пользователя переписать существующий файл;

ofPathMustExist – генерирует сообщение об ошибке, если пользователь указал в имени файла несуществующий каталог;

ofReadOnly – по умолчанию устанавливает индикатор «Открыть только для чтения» при открытии диалога;

ofShareAware – игнорирует ошибки нарушения условий коллективного доступа и разрешает, несмотря на них, производить выбор файла;

70