C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 67 - Компонент THeaderControl / С++ Builder 5 / Borland C++

Шаг 67 - Компонент THeaderControl

Особенно рассматривать тут ничего не надо, компонент простой. И на мой взгляд, не очень нужный. По идее он при изменении ширины своих заголовков меняет ширину каких-то связанных с ним объектов. Может кому и пригодится...

Я тут формочку слепил, примерно такую:

gif/67_1.gif (9328 b)

Секции редактируются двойным щелчком. Кстати картиночка ничего, в экзамплах билдера нашел... Вы не глядите, что, мол криво расположены компоненты. Форма активируется, и все пофиксится как положено :). Потом написал такой код...

void __fastcall TForm1::HeaderControl1SectionResize(
      THeaderControl *HeaderControl, THeaderSection *Section)
{
	THeaderSections* hs = HeaderControl->Sections;
	Memo1->Left = hs->Items[0]->Left;
	Memo2->Left = hs->Items[1]->Left;
	Image1->Left = hs->Items[2]->Left;

	Memo1->Width = hs->Items[0]->Width;
	Memo2->Width = hs->Items[1]->Width;
	Image1->Width = hs->Items[2]->Width;

	Memo1->Top = HeaderControl1->Height+1;
	Memo2->Top = HeaderControl1->Height+1;
	Image1->Top = HeaderControl1->Height+1;

	Memo1->Height = ClientHeight - (HeaderControl1->Height+1);
	Memo2->Height = ClientHeight - (HeaderControl1->Height+1);
	Image1->Height = ClientHeight - (HeaderControl1->Height+1);
}
//----------------------------
void __fastcall TForm1::FormActivate(TObject *Sender)
{
	HeaderControl1SectionResize(HeaderControl1,NULL);
}

//----------------------------
void __fastcall TForm1::FormResize(TObject *Sender)
{
	HeaderControl1SectionResize(HeaderControl1,NULL);
}
//----------------------------

Честно сказать, этот код далек от образца эффективности. Почти как в одной рекламе - "Может быть не самый эффективный, но самый вкусный яблочный пирог..." Ну как хотите, зато просо и наглядно. Вообще если пользоваться соображениями эффективности, то здесь следовало бы выяснять, какая секция была сдвинута, затем по секции определять целевой объект изменения размера (а соответственно, расхода системных ресурсов :( ), и после этого пересайзывать. Ну а у нас вот так :).


Загрузить проект | | |
Автор Аванесов Самвел.
[AD]