- •Лабораторная работа №8. Использование строк
- •1. Общие теоретические сведения Строки как одномерные массивы символов
- •Создание оконного приложения
- •Компонента ListBox
- •Компонента ComboBox
- •Компонента-кнопка BitBtn
- •Обработка событий
- •Пример выполнения задания
- •Создание оконного приложения
- •Создание консольного приложения
- •Индивидуальные задания
Компонента-кнопка BitBtn
Компонента ^ BitBtn расположена на странице Additonal и представляет собой разновидность стандартной кнопки Button. Ее отличие – наличие изображения на поверхности, определяемое свойством Glyph. Кроме того, свойство Kind задает одну из 11 стандартных разновидностей кнопок, нажатие любой из них, кроме bkCustom и bkHelp, закрывает окно и возвращает в программу результат mr*** (например, bkOk – mrOk). Кнопка bkClose закрывает главное окно и завершает работу программы.
Обработка событий
Обо всех происходящих в системе событиях, таких, как создание формы, нажатие кнопки мыши или клавиатуры и т.д., ядро ^ Windows информирует окна путем посылки соответствующих сообщений. Среда Builder позволяет принимать и обрабатывать большинство таких сообщений. Каждая компонента содержит обработчики сообщений на странице Events инспектора объектов. Для создания обработчика события необходимо выделить нужную компоненту, далее на странице Events выбрать обработчик и двойным щелчком кнопкой мыши в белом (пустом) окошке в текст программы будет вставлена соответствующая функция. Например, выделив компоненту Form1 и выбрав обработчик OnActivate, будет вставлена функция …FormActivate(…) { }. Каждая компонента имеет свой набор обработчиков событий, однако некоторые из них присущи большинству компонент. Рассмотрим наиболее часто применяемые события: OnActivate – форма получает это событие при активации; OnCreate – возникает при создании формы (Form), в обработчике события задаются действия, которые должны происходить в момент создания формы; OnKeyPress – возникает при нажатии клавиши клавиатуры, параметр Key типа ^ WORD содержит ASCII-код нажатой клавиши (Enter имеет код 13, Esc – 27) и обычно используется, когда необходима реакция на нажатие одной из клавиш; OnKeyDown – возникает при нажатии клавиши клавиатуры, обработчик этого события получает информацию о нажатой клавише и состоянии клавиш Shift, Alt и Ctlr, а также о нажатой кнопке мыши; OnKeyUp – является парным событием для OnKeyDown и возникает при отпускании ранее нажатой клавиши; OnClick – возникает при нажатии кнопки мыши в области компоненты, а OnDblClick – при двойном щелчке кнопкой мыши в области компоненты.
Пример выполнения задания
Написать программу подсчета числа слов в строке, содержащей пробелы.
Создание оконного приложения
Для ввода строк и работы с ними
использовать компоненту ComboBox. Ввод
строки заканчивать нажатием клавиши
Enter, для выхода использовать кнопку
«Close». Панель диалога с результатами
программы может иметь вид, представленный
на рис. 7.1.
В тексте программы приведем
только
функции-обработчики:
//---------------------------------------------------------------------------
void
__fastcall TForm1::FormActivate(TObject
*Sender)
{
Form1->ComboBox1->SetFocus(); //
Передача фокуса
ComboBox1
}
//---------------------------------------------------------------------------
void
__fastcall TForm1::ComboBox1KeyDown(TObject
*Sender, WORD &Key,TShiftState Shift)
{
if (Key
== 13) {
ComboBox1->Items->Add(ComboBox1->Text);
//
Строка из окна редактирования заносится
в ComboBox1
ComboBox1->Text=""; //
Очистка окна
}
}
//------------
Обработка нажатия кнопки мыши
--------------------
void __fastcall
TForm1::ComboBox1Click(TObject *Sender)
{
int
n, i, nst;
nst = ComboBox1->ItemIndex; // Определение
номера строки
String st =
ComboBox1->Items->Strings[nst]; // Запись выбранной
строки st
if (st[1] != ' ') n
= 1; // Здесь и
ниже ' ' – пробел
else n = 0;
for(i=1; ist
if(st[i]
== ' ' && st[i+1] != ' ') n++;
Edit1->Text =
IntToStr(n); // Вывод числа
слов в
Edit1
}
Рис.
1
