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

6. Смуга стану StatusBar

Компонент StatusBar є рядом панелей, що відображають смугу стану в стилі Windows. Звичайно ця смуга розміщується внизу форми.

Властивість SimpiePanel визначає, чи включає смуга стану одну або багато панелей. Якщо SimpiePanel = true, то вся смуга стану є єдиною панеллю, текст якої задається властивістю SimpleText. Якщо ж SimpiePanel = false, то смуга стану є набором панелей, що задаються властивістю Panels. В цьому випадку властивість SizeGrip визначає, чи може користувач змінювати розміри панелей в процесі виконання програми.

Кожна панель смуги стану є об'єктом типу TStatusPanels. Властивості панелей можна задавати спеціальним редактором наборів. Викликати редактора можна з Інспектора Об'єктів кнопкою з багатокрапкою біля властивості Panels. У вікні редактора ви можете переміщатися по панелях, додавати нові або знищувати ті, що існують. При переміщенні по панелях у вікні Інспектора Об'єктів ви бачитимете їх властивості.

Основна властивість кожної панелі — Text, в який заноситься текст, що відображається в панелі. Його можна занести в процесі проектування, а потім можна змінювати програмно під час виконання. Інша істотна властивість панелі — Width (ширина).

Програмний доступ до текстів окремих панелей можна здійснювати через властивість Panels і його індексована підвластивість Items. Наприклад, оператор:

StatusBar1->Panels->Items[0]->Text = "текст1";

надрукує текст «текст 1» в першій панелі.

Кількість панелей смуги стану можна визначити з підвластивості Count властивості Panels. Наприклад, наступний оператор очищає тексти всіх панелей:

for (int i=0; i < StatusBar1->Panels->Count; i++)

{

StatusBar1->Panels->Items[i]->Text = "";

}

Нижче приведений код для прикладу текстового редактора на основі компоненту RichEdit, що містить смугу стану. У її першій панелі відображується номер рядка і символу, перед яким знаходиться курсор, в другій – відображається повідомлення, що текст був модифікований Для реалізації такої смуги стану треба в обробниках подій ОnКеуDown, OnKeyUp, OnMouseDown i OnMouseUp компоненту RichEdit1 і події OnResize форми забезпечити виконання операторів:

StatusBar1->Panels->Items[0]->Text=

IntToStr((int)RichEdit1->CaretPos.y+1)+ ": " + IntToStr((int)RichEdit1->CaretPos.x+1);

if (RichEdit1->Modified)

StatusBar1->Panels->Items[1]->Text = "модиф.";

else StatusBarl->Panels->Items[l]->Text = "";

Контрольні питання:

  1. Перерахуйте основні типи панелей та поясніть їх призначення?

  2. Що спільного і від’ємного у компонентів TabControl і PageControl?

  3. Які переваги дозволяють реалізувати компоненти ToolBar і PageScroller у порівнянні із звичайними панелями?

  4. У чому полягає можливість перебудови компонента CoolBar?

  5. У чому полягає технологія Drag&Doc для компоненту ControlBar?

  6. Яким чином забезпечується виведення даних у смугу стану?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]