Главная » C++, C++ Builder » Динамические компоненты, часть вторая C++ Builder

0

Одна из более разумных причин для динамического создания управляющих элементов — отображение полоски прогресса (progress bar). Этот управляющий элемент  вам  не  всегда необходим, но приятно было бы иметь его под рукой, когда происходит какой-либо длительный процесс.

В этом примере мы покажем, как создавать полоску прогресса динамически. Этот управляющий элемент будет не просто создан во время выполнения программы, а еще и создан как дочерний по отношению к другому управляющему элементу на форме — панели состояния (status bar). Такой процесс применяется во многих программах, например Microsoft Word и Internet Explorer. Полоска прогресса появляется внизу, на панели состояния во время операций, которые занимают некоторое время, например загрузка и сохранение файлов или получение информации с удаленного сервера. Теперь ваши приложения также могут использовать такую возможность благодаря мощи и гибкости VCL, встроенной в CBuilder.

Замечание

Для программы «Динамические компоненты 2» исходный код находится на сопроводительном компакт-диске в каталоге Chapter4\DynControl2.

На рис. 4.5 показана форма, с которой мы будем работать в этом приложении. Создайте простую форму и перетащите на нее три кнопки и панель состояния (Status Bar). Убедитесь, что свойство alignment (выравнивание) у панели состояния установлено в alBottom. Это не отразится на нашем примере, но панель состояния принято располагать вдоль нижнего края формы.

Рис. 4.5. Форма приложения «Динамические компоненты 2»

Три кнопки на форме — стадии жизни полоски прогресса. Поскольку мы не можем ни изменять свойства, ни удалять полоску прогресса, пока она не создана, сделайте вторую и третью кнопки недоступными, установив их свойства Enabled (доступны) в false (ложь). Когда придет время, мы их сделаем доступными.

Первый шаг процедуры — добавить объявление компонента- полоски прогресса в заголовочный файл формы. Добавьте следующую строчку в заголовочный файл Unit1.h для проекта:

private: // User declarations

TProgressBar  *FpProgress;

Следующий шаг, как всегда, заключается в установке указателя в NULL в конструкторе. Модифицируйте конструктор в исходном файле Unit1.cpp следующим образом:

__fastcall TForm1::TForm1(TComponent *Owner)

: TForm(Owner)

{

FpProgress = NULL;

}

Источник: Теллес М. – Borland C++ Builder. Библиотека программиста – 1998

По теме:

  • Комментарии