Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.doc
Скачиваний:
17
Добавлен:
14.02.2015
Размер:
641.54 Кб
Скачать

Урок 31. Компонент HotKey

Компонент HotKey предназначен для назначения пользователем различных комбинация клавиш для выполнения той или иной команды (как правило, команды меню). Он расположен на вкладке Win32 Палитры компонентов:

Перенесите его на форму (оставьте его имя HotKey1 по умолчанию). Также добавьте на форму главное меню с подменю, в обработчике щелчка по подменю вставьте, например, показ messagebox'а:

void __fastcall TForm1::MenuItem1Click(TObject *Sender)

{

ShowMessage("!!!");

}

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

void __fastcall TForm1::Button1Click(TObject *Sender)

{

MenuItem1->ShortCut = HotKey1->HotKey;

}

Тут мы просто присваиваем свойству ShortCutнашего пункта меню значенение свойстваHotKeyнашего элементаHotKey1. Потому что именно в свойство HotKey и запишется заданная пользователем на этапе работы программы некоторая комбинация клавиш.

Запускаем программу. Введем некоторую комбинацию клавиш в наш HotKey и нажмем на кнопку. Теперь при нажатии заданной пользователем комбинации клавиш и будет выполнятся команда пункта меню:

Обратите внимание, что компонент HotKey можно использовать только для тех компонентов, у которых есть свойство ShortCut.

Урок 32. Компонент StatusBar

Компонент StatusBarрасположен на вкладкеWin32 Палитры компонентов:

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

Для добавлении панели на этапе разработки программы выберите меню AddItemв контекстном меню панели состояния в окнеObjectTreeView:

Другой способ добавления панелей к строке состояния - это нажатие на кнопку с многоточием для свойства PanelsокнаObjectInspector.

Для добавленной панели можно потом настраивать ее немногочисленные свойства в окне ObjectInspector(например, такие, как текст (Text) или выравнивание (Alignment)).

Теперь посмотрим, как можно добавлять панели динамически. Добавьте на форму кнопку, в обработчике которой напишите следующий код:

void __fastcall TForm1::Button1Click(TObject *Sender)

{

// Добавляем панель.

StatusBar1->Panels->Add();

// Подсчитываем число панелей.

int count = StatusBar1->Panels->Count;

// Изменяем текст у последней панели.

StatusBar1->Panels->Items[count - 1]->Text = "Panel " + IntToStr(count - 1);

}

Смысл должен быть понятен из комментариев. Результат будет приблизительно таким:

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

void __fastcall TForm1::Button1Click(TObject *Sender)

{

StatusBar1->SimpleText = "Some Text";

}

Урок 33. Установка главной формы приложения

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

Выбираем Project -> Options в главном меню C++ Builder IDE. В появившемся диалоговом окне Project Options for Project1.exe переходим на вкладку Forms, в которой в combobox'е Main form выбираем нужную нам форму:

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