Справочник по компонентам Дельфи

Автор: Пользователь скрыл имя, 06 Февраля 2013 в 01:52, аттестационная работа

Описание работы

Класс TList -- универсальный список. Он представляет собой массив нетипированных указателей и поэтому годится для хранения набора любых, в том числе разнотипных, данных и объектов. При добавлении/удалении в список данные не создаются и не уничтожаются -- эта обязанность лежит на программисте. Приведем доступные ему методы и свойства класса.

Работа содержит 1 файл

componens.doc

— 980.33 Кб (Скачать)

Текст кнопки, появляющийся на ее поверхности, определен в свойстве:

(Pb) property Caption: string;

Если в составе текста есть амперсанд ('&'), то следующий за ним символ используется в акселераторе, и нажатие комбинации клавиш <АН>+<символ> вызывает нажатие кнопки.

Водораздел среди кнопок проходит по тому, что именно означает нажатие. Ряд кнопок -- TRadioButton, TCheckBox и группа TRadioGroup -- предназначен для ввода или переключения фиксированных параметров, и программиста более интересует их состояние в некоторый момент времени, чем сам факт нажатия. Кнопки TButton, TSpinButton и TBitBtn напротив, как правило, своим нажатием инициируют немедленные действия. Кнопка TSpeedButton может успешно служить для решения обеих задач.

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

Модальная форма, или модальный диалог -- специальная разновидность окон Windows (и форм Delphi), предназначенная для ввода пользователем необходимых программе данных или выбора одного ответа из нескольких вариантов. Обычно при этом ему предоставляется несколько кнопок, соответствующих вариантам. Вплоть до получения ответа в модальном диалоге пользователь не может переключиться на другие окна той же задачи, а в системном модальном диалоге -- и на другие задачи. Для использования в таких случаях предназначены стандартная кнопка Windows TButton и ее младшая сестра TBitBtn, отличающаяся только наличием картинки на ее поверхности. При их нажатии значение свойства ModalResult кнопки передается одноименному свойству формы, где такое изменение означает вывод формы из модального состояния и ее закрытие:

(Pb) property ModalResult: TModalResult;

TModalResult = Low(Integer) ..High(Integer);

В модальной форме могут быть предусмотрены две специальные кнопки, соответствующие положительному и отрицательному решениям. Одна из них срабатывает при нажатии на клавиатуре <Enter>, другая -- <Esc>. Любая кнопка может получить такой статус, установив в True соответственно одно из свойств:

(Pb) property Default: Boolean;

(Pb) property Cancel: Boolean;

У двух рассмотренных кнопок результат, который при нажатии кнопки передается модальной форме, будет соответственно равен mrOk и mrCancel.

Ниже рассмотрим имеющиеся в распоряжении программиста варианты кнопок. Описанные выше свойства перечисляются, но не комментируются.

Компонент TButton

TObject-"TPersistent->TCornponent->TControl->TWinControl->

-*TButtonControl-->TButton

Модуль STDCTRLS

Страница Палитры компонентов Standard

Обычная кнопка Windows. В этом компоненте опубликованы только приведенные выше свойства Default, Cancel, Caption, ModalResult и OnClick. Двойной щелчок на кнопке не предусмотрен.

 

Компонент TBitBtn

TObject--"TPersistent-->TComponent->TControl-->TWinControl--"

*"TButtonControl-->-TButton->TBitBtn

Модуль BUTTONS

Страница Палитры компонентов Additional

Эта кнопка, будучи потомком TButton, может нести на себе пиктограмму и имеет рад дополнительных удобств в использовании. В Delphi уже определены стандартные виды кнопок:

(Pb) property Kind: TBitBtnKind;

TBitBtnKind = (bkCustom, bkOK, bkCancel, bkHelp, bkYes, bkNo, bkClose, bkAbort, bkRetry, bklgnore, bkAll) ;

Для каждой из них определены: передаваемый форме результат (ModalResult):

BitBtnModalResults: array[TBitBtnKind] of TModalResult =

( 0, mrOk, mrCancel, 0, mrYes, mrNo, 0, mrAbort, mrRetry, mrlgnore, inrAll);

а также название и картинки для разных состояний. Достаточно установить значение свойства Kind, и кнопка сразу приобретет нужный вид. Более того, некоторые из видов кнопок при нажатии сразу совершают определенные действия. Так, bkHelp осуществляет инициализацию системы помощи со своим (или ближайшим ненулевым родительским) контекстом. Кнопка вида bkClose закрывает форму, которой она принадлежит, вызывая ее метод Close.

Кнопка будет отнесена к виду bkCustom, если она:

* назначена Default, но при этом не принадлежит множеству [bkOk, bkYes];

* назначена Cancel, но не принадлежит множеству [bkCancel, bkNo];

* у нее изменена пиктограмма;

* модальный результат не соответствует определенному для этого вида кнопок.

За внешний вид этой кнопки отвечают свойства, рассмотренные ниже. Стиль изображения кнопок в зависимости от операционной системы задается свойством:

(Pi-) property Style: TButtonStyle;

TButtonStyle = (bsAutoDetect, bsWin31, bsNew);

Стиль bsNew соответствует Windows 95. В любом случае корректным будет применение стиля bsAutoDetect, который сам распознает версию системы. Пиктограмма кнопки, которая вместе с текстом видна на ее поверхности, определяется свойством:

(Pb) property Glyph: TBitmap;

Для создания эффекта нажатия картинка должна немного изменяться в зависимости от состояния; кроме того, отдельная картинка нужна для неактивного состояния (когда нажатие не воспринимается). В свойстве Glyph должна быть одна битовая карта, но она может содержать картинки сразу для нескольких состояний кнопки (максимум четыре). Они интерпретируются как соответствующие нормальному (отжатому), запрещенному (неактивному), нажатому и утопленному состояниям (последнее применяется только для кнопок TSpeedButton). Для этого картинки должны быть расположены подряд

вплотную по горизонтали. Например, при размере картинок 16х16 нужна объединенная битовая карта 64х16. Если каждая из картинок квадратная и ширина общей картинки нацело делится на высоту, то при присвоении ее свойству Glyph система сможет распознать их и скорректировать количество, определяемое свойством:

(pb) property NumGlyphs: TNumGlyphs ;

TNumGlyphs = 1..4;

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

Три свойства отвечают за расположение текста и картинки на поверхности кнопки:

(Pb) property Layout: TButtonLayout;

Способ выравнивания пиктограммы относительно краев кнопки. Может быть одним из четырех:

TButtonLayout = (biGlyphLeft, biGlyphRight, biGlyphTop, biGlyphBottom) ;

Расстояние от соответствующего способу выравнивания края кнопки до пиктограммы описывается свойством:

(Pb) property Margin: Integer;

Промежуток между пиктограммой и текстом равен:

(Pb) property Spacing: Integer;

Если свойства Margin, Spacing или оба не заданы (по умолчанию равны -1), значения этих промежутков выбираются системой. Кнопка также имеет метод Click и свойства Caption, ModalResult, Default и Cancel. Статус Default получают кнопки видов bkOk, bkYes, a Cancel -- кнопки видов bkCancel, bkNo.

Компонент TCheckBox

TObject^TPersistent--^TConiponent->TControl-"TWinControl->TButtonControl->

-->TCustoniCheckBox->TCheckBox

Модуль STDCTRLS

Страница Палитры компонентов Standard

Кнопка с независимой фиксацией, или флажок. Является стандартным элементом управления Windows.

Состояние кнопки отражает свойство:

(Pb) property State: TCheckBoxState;

Оно может принимать одно из трех значений:

TCheckBoxState = (cbUnchecked, cbchecked, cbGrayed) ;

Способ перехода из состояния в состояние при нажатии устанавливается свойством:

(Pb) property AllowGrayed: Boolean;

Если оно равно False, кнопка имеет два состояния и при каждом нажатии переходит из cbUnchecked в cbChecked и обратно. Если AllowGrayed = True, кнопка имеет три состояния и при нажатиях движется по циклу cbGrayed -- cbChecked -- cbUnchecked.

Показывает, отмечена mi кнопка (т. е. State = cbChecked), свойство:

(Pb) property Checked: Boolean;

Оно доступно для записи -- с его помощью можно и отмечать кнопки. Значение False соответствует cbUnchecked.

Выравнивание текста (только по правому или левому краю) задается при помощи свойства:

(Pb) property Alignment: TLeftRight;

TLeftRight = taLeftJustify..taRightJustify;

Кнопка также имеет свойство Caption. Двойной щелчок на кнопке не предусмотрен.

Компонент TRadioButton

TObject--"TPersistent-->TComponent->TControl-->TWinControl--"TButConControl-->

--^TRadioButton

Модуль STDCTRLS

Страница Палитры компонентов Standard

Радиокнопка (переключатель), или кнопка с зависимой фиксацией -- также стандартный элемент управления Windows. Особенностью радиокнопок является механизм их переключения. Они группируются автоматически, то есть при выборе одной из них все остальные, принадлежащие тому же элементу управления или форме, освобождаются. Для того чтобы в форме можно было использовать несколько независимых групп радиокнопок, используйте специальные компоненты (см. раздел "Группирование компонентов").

Свойство

(Pb) property Checked: Boolean;

определяет, нажата ли данная радиокнопка. При изменении этого свойства генерируется событие OnClick.

У радиокнопки имеется свойство Caption, содержащее связанньш с ней текст. Выравнивание текста радиокнопки определяется свойством

(Pb) property Alignment: TLeftRight;

и может проводиться только по левому или по правому краю. У этого компонента предусмотрено также событие:

(Pb) property OnDblClick;

Такое событие посылается только уже нажатой радиокнопке, в то время как OnClick -- только ненажатой.

 

Компонент TSpeedButton

TObject->TPersistent->TComponent-"TControl-->TGraphicControl->TSpeedButton

Модуль BUTTONS Страница Палитры компонентов Additional

Эта кнопка с изображением может иметь как зависимую, так и независимую фиксацию. Она удобна для применения в составе панелей инструментов. Поведение этих кнопок во многом определяется свойством:

(pd) property Grouplndex: Integer;

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

(Pb) property AllowAlIUp: Boolean;

которое описывает поведение кнопок в группе, а именно: могут ли все кнопки одновременно быть отжаты. Если AllowAlIUp равно False (по умолчанию), нажатую кнопку в группе можно отпустить, лишь нажав другую. Если AllowAlIUp равно True, кнопку можно отпустить повторным нажатием.

Если вы хотите фиксировать одну кнопку TSpeedButton, ей нужно присвоить уникальный групповой индекс, а AllowAlIUp установить в True. Пример использования такой кнопки есть в примере DDEINFO на прилагаемой дискете.

Поскольку в группе не могут одновременно находиться кнопки с различным значением этого свойства, при нажатии кнопки и изменении Grouplndex свойство AllowAlIUp "рассылается" (присваивается) остальным кнопкам с тем же значением Grouplndex. В группе не может быть нажато более одной кнопки. Определяет, нажата ли кнопка, свойство:

(Pb) property Down: Boolean;

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

Текст кнопки определяет свойство Caption. Компонент имеет те же правила и свойства рисования картинки, что и TBitBtn. Они описываются свойствами Glyph, NumGlyphs, Layout, Margin и Spacing.

Для имитации щелчка предусмотрен метод Click. Двойной щелчок для TSpeedButton возможен только на нажатой кнопке -- иначе он интерпретируется как обычный. Описывается свойством:

(Pb) property OnDblClick;

 

Компонент TRadioGroup

TObject->TPersistent->TComponent-"TControl-"TWinControl-"TCustomControl->

-"TCustomGroupBox--"TCustomRadioGroup-"TRadioGroup

Модуль EXTCTRLS

Страница Палитры компонентов Standard

Готовая группа радиокнопок, содержащая все средства для управления ими. Каждая радиокнопка в группе наследует все свойства TRadioButton. Радиокнопки могут располагаться в несколько столбцов.

Свойство

(Pb) property Columns: Integer;

устанавливает число столбцов с радиокнопками. Оно не должно превышать 16. Индекс нажатой радиокнопки в группе определяется свойством:

(Pb) property Itemlndex: Integer;

Индекс исчисляется от 0. Если он равен -1, mi одна радиокнопка в группе не нажата.

Набор строк с заголовками радиокнопок содержится в свойстве:

(Pb) property Items: TStrings;

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

 

Компонент TSpinButton

TObject->TPersistent--"TComponent-"'TControl-"TWinControl-"TSpeenButton

Модуль SPIN

Страница Палитры компонентов Samples

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

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

(Pb) property DownGlyph: TBitmap;

(Pb) property UpGlyph: TBitmap;

Кнопка не имеет события OnClick. При нажатии нижней и верхней кнопок соответственно возникают события:

J property OnDownClick: TNotifyEvent;

property OnUpClick: TNotifyEvent;

Этот компонент может работать в паре с другими, например, редактором (см. компонент TSpinEdit). В этом случае, получая фокус, он передает его "напарнику", указатель на который содержится в свойстве:

(Pb) property FocusControl: TWinControl;

 

Ввод и редактирование текста

В Палитру компонентов входят три компонента, позволяющие вводить и редактировать текст (далее -- редактирующие элементы). На базе стандартного редактирующего элемента управления Windows построены два основных компонента -- строка ввода TEdit и многострочный редактор TMemo. На базе первого из них для ввода данных по шаблону создан третий компонент -- TMaskEdit.

В начале раздела опишем компонент TCustomEdit. Хотя вы не найдете его в Палитре компонентов, он является общим предком для трех доступных вам редактирующих элементов. Поэтому здесь рассмотрим только его свойства, общие для всех трех.

В отличие от других визуальных компонентов, у перечисленных в этой группе текст содержится не в свойстве Caption, а в свойстве Text:

property Text: TCaption;

TCaption = string[255] ;

Часть текста может быть выделена. Свойства

property SelStart: Integer;

property SelLength: Integer;

определяют начало и длину выделенного в редакторе текста (измеряемые в количестве символов). Сам выделенный текст содержится в строке, определяемой свойством:

property SelText: string;

Метод

procedure ClearSelection;

исключает из текста весь выделенный фрагмент, а метод

Информация о работе Справочник по компонентам Дельфи