Компонент Текстовая область (ТМето) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Компонент Текстовая область (ТМето)



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

должен ввести большой объем информации (например, полный почтовый

адрес или произвольный комментарий), ему может понадобиться несколько

строк текста. В таком случае следует использовать компонент ТМето.

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

зуется клавиша ENTER. Однако в диалоговых окнах Windows эта клавиша часто при-

меняется для завершения ввода. Способ использования клавиши ENTER определя-

ется значением свойства WantReturns. Если оно имеет значение True, то клавиша

ENTER позволяет переходить к новой строке внутри текстовой области, в против-

ном случае она служит для завершения ввода и перехода к следующему элементу

управления, а для перехода к новой строке применяется комбинация клавиш

CTRL+ENTER.

Главное свойство данного компонента — Lines (Строки), имеющее тип TStrings. В нем

хранится список строк, введенных пользователем. Эти строки можно обрабатывать

всеми методами, доступными в классе TStrings, например сохранять в файле:

Memol.Lines. SaveToFilef 'C:\Merrio.TXT1);

Наличие у текстовой области полос прокрутки задается в свойстве ScrollBars.

Таблица 2.3. Настройка свойства ScrollBars

Значение Вид текстовой области

ssNone Полосы прокрутки отсутствуют

ss Horizontal Имеется горизонтальная полоса прокрутки

ss Vertical Имеется вертикальная полоса прокрутки

ssBoth Имеются две полосы прокрутки

Если включена горизонтальная полоса прокрутки, значение свойства Wordwrap игно-

рируется. Это свойство определяет, будет ли выполняться автоматический перенос

Создание программ для Windows 119

слов на новую строку при достижении правой границы области (при этом никаких

символов новой строки в текст не добавляется — перенос отображается только на

экране).

При выделении фрагмента текста в текстовой области в свойство SelStart записыва-

ется позиция первого выделенного символа, а в свойство SelLength — число выде-

ляемых символов. Выделенный текст доступен через свойство SelText (тип string).

Для выделения всего текста применяется метод SelectALL, для удаления выделенного

текста — метод ClearSetection.

Чтобы очистить содержимое текстовой области, используется метод Clear, чтобы

отменить последние изменения — метод Undo, а чтобы очистить буфер, хранящий

историю изменений, и сделать такую отмену невозможной — метод ClearUndo.

Группа методов предназначена для работы с буфером обмена Windows. Для копирова-

ния выделенного текста в буфер обмена применяется метод CopyToClipboard, для вы-

резания текста — метод CutToClipboard, для вставки текста из буфера — метод

PasteFrom Clip board.

Когда в текстовой области происходит изменение текста, генерируется событие

QnChange.

Компонент Флажок (TCheckBox)

Данный компонент используется для фиксации включенного или выклю-

ченного состояния (одного из двух).

После размещения компонента Флажок на форме подпись к этому элементу управ-

ления можно задать в свойстве Caption. Расположение этой подписи определяется

свойством Alignment: значение taRightHustify означает расположение подписи справа,

а значение taLeftJustify — слева. Главное свойство флажка называется Checked. Оно

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

Это свойство принимает значение True, если флажок включен, и False, если он сбро-

шен.

Некоторые флажки могут находиться в третьем, ≪частично установленном* состоя-

нии, когда признак установки флажка отображается приглушенным цветом. Такая

возможность нужна, когда требуется сообщить пользователю о неполном соответ-

ствии указанному статусу (например, в ходе установки программ таким образом

сообщается, что для установки выбраны не все доступные средства).

Если для свойства AllowGrayed задано значение True, то флажок при последователь-

ных щелчках на нем будет поочередно принимать состояния ≪сброшен≫, ≪установлен

частично≫, ≪установлен≫. Определить текущее состояние или задать новое из числа

доступных можно, проверив или изменив свойство State (табл. 2.4). Чтобы реаги-

ровать на изменение состояния флажка, надо создать обработчик события OnCLkk

(При щелчке).

120 Урок 2. Основы программирования в среде Delphi 7

Таблица 2. 4. Значения свойства State

Значение

cbUnchecked

cbGrayed

cbChecked

Состояние флажна

Сброшен

Установлен частично

Установлен

Рассмотрим пример, когда при изменении состояния флажка его текущее состояние

выводится в надпись Labell. Для этого надо разместить на форме соответствующий

компонент, установить значение свойства AllowGrayed равным True, сформировать

обработчик события OnCLick и записать в нем оператор выбора текущего состояния

флажка (рис. 2.9).

IjP'MvForm

Добавление флажка на форму

Состояние флажка

отображается в виде надписи

затемнено

Рис. 2.9. Программа в работе

procedure TMyForm.CheckBoxlClickfSender: TObject);

begin

case CheckBoxl.State of

cbUnchecked: Labell-Caption:= 'выключено';

cbGrayed: Labell.Caption:= 'затемнено';

cbChecked: Labell.Caption:= 'включено';

end

end;__

Компонент Переключатель (TRadioButton)

В отличие от флажка, переключатель предназначен для выбора одного зна-

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

Когда пользователь выбирает один из них, то выделение с текущего пере-

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

ключатель.

Создание программ для Windows 121

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

компонентов TRadioButton. Программа поймет, что выделенным должен быть только

один из них.

Свойства компонента Переключательаналогичны свойствам компонента Флажок. Свой-

ство Alignment определяет положение подписи справа или слева от переключателя,

а свойство Checked — состояние объекта (True, если переключатель включен).

Методы GetChecked и SetChecked, позволяющие обращаться к свойству Checked и

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

чены для использования в классах-наследниках TRadioButton (конкретных реализа-

циях переключателя) в соответствии с принципом инкапсуляции.

Для отслеживания состояния конкретного переключателя можно обрабатывать

событие OnCMck.

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

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

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

чанию оставить выключенными.

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

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

можно сообщить, например, с помощью надписи La bell.

procedure TMyForm.RadioButtonlClicklSender: TObject];

begin

if RadioButtonl.Checked

then Labell.Caption:= 'Включен первый1

end;

procedure TMyForm.RadioButton2Click(Sender: TObject);

Begin

if RadioButton2.Checked

then Labell.Caption:= 'Включен второй'

end;

Компонент Группа переключателей (TRadioGroup)

Если в программе требуется использовать несколько групп переключателей

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

категории), можно применить один из двух подходов. Первый состоит в вы-

делении для каждой группы специального объекта (панели), чтобы система Delphi

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

вании компонента TRadioGroup, который объединяет свойства и методы, обеспечи-

вающие поддержку работы группы переключателей.

После размещения на форме компонента TRadioGroup входящие в него переключа-

тели задаются перечислением их названий. Эти названия вводятся в свойство Items,

имеющее тип TString. Так как требуется ввести не одну строку, а несколько, для их

122 Урок 2. Основы программирования в среде Delphi 7

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

циальной кнопке -jjj, расположенной справа в строке, описывающей свойство Items.

Большая текстовая область окна редактора предназначена для ввода названий пере-

ключателей, по одному в каждой строке. Не следует забывать о поддержке возмож-

ности управления программой с помощью клавиатуры, поэтому перед некоторыми

буквами в названиях надо указать символ &, чтобы сделать эти буквы ≪горячими*.

Затем щелкните на кнопке ОК, и внешний вид объекта RadioGroupl на форме сразу

изменится (рис. 2.10).

String List editor

. м/i.'.•! 1 1 1

...

Ввод названий переключателей

при помощи редактора списка строк

Форма, содержащая созданную

группу переключателей

• •

—≪

Г"

-' Р *яепка2

! С кчэпиэЗ

Рис. 2.10. Создание двух групп переключателей

Если теперь откомпилировать и запустить программу, то в ней будут независимо

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

RadioButtonl и RadioButton2, а вторая, RadioGroupl, сформирована как единый объект

(рис.2.11).

Так как компонент TRadioGroup представляет единое целое со своими переключате-

лями, использовать его в программе надо совсем не так, как компонент TRadi о Button.

Так, свойство Caption определяет не подпись каждого переключателя (эти подписи

теперь задаются в свойстве Items), а заголовок группы (исходно она называется

RadioGroupl). Свойство Columns задает число столбцов (первоначально один), обра-

зованных переключателями. Свойство Itemlndex (исходное значение -1) содержит

номер выделенного переключателя (число -1 показывает, что ни один переключатель

не выбран). Значение этого свойства изменяется автоматически, когда пользователь

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

при занесении нового значения в свойство Itemlndex изменится и текущий выбран-

ный переключатель на форме.

Создание программ для Windows 123

7 MyForm

i ^ jjnrwa jj

i Г ≪ямка 2

/*uc. 2.f/. Программа в работе. Две группы переключателей

созданы с использованием различных средств

Динамически реагировать навыбор нового переключателя в фуппе можно с помощью

обработчика события OnClick. Например, чтобы отображать с помощью надписи

Labell название текущего переключателя, надо обратиться к свойству Items (список

строк) и выделить тот элемент, номер которого записан в свойстве Itemlndex. Пред-

варительно следует проверить, имеется ли вообще выделенный переключатель (не

равно ли значение свойства Itemlndex -1), или выбрать один из переключателей на

этапе проектирования (например, присвоив свойству Itemlndex значение 0).

procedure TMyForm.RadioGrouplClickfSender: TObject];

begin

if RadioGroupl.Itemlndex > -1 then

Labell.Caption :- 'Выбран ' +

RadioGroupl.Items[ RadioGroupl.Itemlndex ]

end;



Поделиться:


Последнее изменение этой страницы: 2017-02-21; просмотров: 268; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.223.172.252 (0.026 с.)