18 июня 2010

Компонент Panel

Компонент PanelКомпонент Panel расположен на вкладке Standard Палитры компонентов:
Он предназначен для компоновки объектов в окне. Рассмотрим его основные свойства.

Основное его свойство - это Align. Оно отвечает, естественно, за то, как наша панель расположена в окне - прилеплена ли она, например, к верхнему или левому краю или же занимает всю клиентскую область окна. При этом при изменении размеров окна панель остается в определяемым этим свойством положении - т. е., например, если мы задали значение этого свойства в alRight, то при растягивании нашего окна по горизонтали панель все равно будет располагаться в правой части окна. Обратите внимание, что одно из значений этого свойства - это alClient. При задании этого значения панель будет занимать все оставшиеся место на форме. Например, если вы расположили на форме две панели и задали для них значения этого свойства в alLeft и alClient соотвественно, то первая панель будет располагаться в левой части формы (от верхнего края до нижнего), а вторая - занимать всю оставшуюся область. Причем при изменении размера окна такое расположение будет сохраняться.
Еще несколько полезных свойств панели отвечают за ее внешний вид. Например, свойства BevelInner и BevelOuter отвечают, как будет выглядеть граница нашей панели относительно своей внутренной и своей внешних частей. Например, если хотите, чтобы граница панели представляла из себя приподнятую границу, то эти два свойства надо установить в bvLowered и bvRaised соответственно. Если же мы хотим, чтобы панель выглядела как традиционная панель - безо всякой вдавленной внутренней части, то эти свойства устанавливаем в bvRaised и bvNone соответсвенно.
Еще одно свойство панели - это AutoSize. Оно если установить его в True, то панель будет стремится установить минимально возможный для себя размер. Так, например, если на панели ничего не расположено, то она примет нулевую ширину.
На панели могут располагаться другие компоненты. Все они будут храниться в коллекции Controls. Получить число элементов на панели можно через свойство ControlCount.
Вот пример кода, который делает все элементы на панели Panel1 невидимыми:

void __fastcall TForm1::Button2Click(TObject *Sender)
{
  TControl *child;
  int n = Panel1->ControlCount;
  for(int i = 0; i < n; i++)
  {
    ((TControl*)Panel1->Controls[i])->Visible = false ;
  }
}

Комментариев нет:

Отправить комментарий

Темы