Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания по ПР ПМ0_Копец1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.37 Mб
Скачать

Панели общего назначения — компоненты Panel, GroupBox, Bevel, Splitter

Рис. 1 Пример панелей общего назначения

Компонент StatusBar

Строка состояния находиться на странице Win32 Палитры компонентов. Данный компонент удобен для отображения различной служебной и отладочной информации, которая позволяет вести визуальный контроль за действиями приложения. При размещении на форме, он автоматически располагается в нижней части формы.

Разместите на форме.

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

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

Задание 1

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

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";

Задание 2

В приложение из лабораторной работы №12 добавим на форму компонент StatusBar.

Компонент StatusBar можно поделить на любое количество отдельных мини-статусных окон (Ins), для этого нужно два раза щелкнуть по нему на форме приложения (Form1), после чего появится окно, представленное на рис2.

Рис. 2 Окно, появляющееся при двойном щелчке по омпоненту StatusBar

В этом окне, единственная доступная иконка с надписью — Add new Ins, предназначенная для деления компонента StatusBar. Нажав на данную иконку несколько раз видно, что появляются строки в последовательном порядке 0 — TStatusPanel и так далее (см. рис. 3).

Рис. 3 Деление компонента StatusBar

А на форме (Frorm1), область компонента StatusBar, поделена теперь на пять частей, размеры которых можно изменять с помощью окна Инспектора объектов (Object Inspector), где в дальнейшем изменяются свойства всех компонентов добавляемых в приложение.

  1. Чтобы увеличить размер первой части компонента StatusBar -> TStatusPanel [0], нужно выбрать сначала его с помощью мышки: в окне Инспектора объектов (Object Inspector), вкладке Properties, появятся все свойства для первой части StatusBar1 -> Paneles[0].

Напротив надписи Width, вместо стандартного значения 50, вводим любое число, например — 150, нажимаем на клавиатуре Enter. При этом на форме приложения (Form1) будет видно, что первая часть StatusBar1 -> Paneles[0] увеличилась.

  1. Аналогичным образом, настраиваем все остальные части компонента StatusBar1 -> Paneles[1] и так далее. После чего рекомендуется выполнить перекомпоновку программы, для этого нужно нажать на инструментальной панели на кнопку «Run (F9)», с изображением зеленого треугольника. Если ошибок нет, то запустится наше разрабатываемое приложение.

  2. В свойствах формы Form1 -> Caption введем Video.

Получится такой вид формы, представленный на рис. 4.

Рис. 4 Измененный вид формы

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

void __fastcall TForm1::SpeedButton2Click(TObject *Sender)

{

if(Form1->SpeedButton4->Down==true)

Form1->SpeedButton4->Down=false;

if(Form1->SpeedButton5->Down==true)

Form1->SpeedButton5->Down=false;

if(Form1->SpeedButton1->Down==true)

Form1->SpeedButton1->Down=false;

if(Form1->SpeedButton3->Down==true)

Form1->SpeedButton3->Down=false;

Label1->Caption="Информация";

Form1->StatusBar1->Panels->Items[0]->Text = " Стоп ....";

}

void __fastcall TForm1::SpeedButton4Click(TObject *Sender)

{

Label1->Caption="Информация";

Form1->StatusBar1->Panels->Items[0]->Text = " Вперед ....";

}

void __fastcall TForm1::SpeedButton5Click(TObject *Sender)

{

Label1->Caption="Информация";

Form1->StatusBar1->Panels->Items[0]->Text = " Назад ....";

}

void __fastcall TForm1::SpeedButton1Click(TObject *Sender)

{

Label1->Caption="Информация";

Form1->StatusBar1->Panels->Items[0]->Text = " Влево ....";

}

void __fastcall TForm1::SpeedButton3Click(TObject *Sender)

{

Label1->Caption="Информация";

Form1->StatusBar1->Panels->Items[0]->Text = " Вправо ....";

}