Исходники
Статьи
Языки программирования
.NET Delphi Visual C++ Borland C++ Builder C/С++ и C# Базы Данных MySQL MSSQL Oracle PostgreSQL Interbase VisualFoxPro Веб-Мастеру PHP HTML Perl Java JavaScript Протоколы AJAX Технология Ajax Освоение Ajax Сети Беспроводные сети Локальные сети Сети хранения данных TCP/IP xDSL ATM Операционные системы Windows Linux Wap Книги и учебники
Скрипты
Магазин программиста
|
Ishodniki.Ru » Online книги » C++ Builder по шагам Шаг 67 - Компонент THeaderControl Особенно рассматривать тут ничего не надо, компонент простой. И на мой взгляд, не очень нужный. По идее он при изменении ширины своих заголовков меняет ширину каких-то связанных с ним объектов. Может кому и пригодится... Я тут формочку слепил, примерно такую: Секции редактируются двойным щелчком. Кстати картиночка ничего, в экзамплах билдера нашел... Вы не глядите, что, мол криво расположены компоненты. Форма активируется, и все пофиксится как положено :). Потом написал такой код... 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); } //---------------------------- Честно сказать, этот код далек от образца эффективности. Почти как в одной рекламе - "Может быть не самый эффективный, но самый вкусный яблочный пирог..." Ну как хотите, зато просо и наглядно. Вообще если пользоваться соображениями эффективности, то здесь следовало бы выяснять, какая секция была сдвинута, затем по секции определять целевой объект изменения размера (а соответственно, расхода системных ресурсов :( ), и после этого пересайзывать. Ну а у нас вот так :).
|
Форум Программиста
Новости Обзоры Магазин Программиста Каталог ссылок Поиск Добавить файл Обратная связь Рейтинги
|