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

Урок 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 выбираем нужную нам форму:

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