Исходники.Ру - Программирование
Исходники
Статьи
Книги и учебники
Скрипты
Новости RSS
Магазин программиста

Ishodniki.Ru » Online книги » C++ Builder по шагам

Шаг 43 - Разделитель TSplitter

Этот компонент gif/43_1.gif (119 b) делит клиентскую часть формы на две части, размеры которых можно менять перемещением разделителя. Хороший компонент, ничего не скажешь. Чтобы сделать, скажем, две области ввода с изменяемым размером, берется два TMemo. Оба бросаются на форму. После этого одному присваивается значение свойства Align=alBottom. Это например. Другому, соответственно - alClient. А это всегда. После этого разделителю тоже присваивается значение Align=alBottom, и вытаскивается он над первой областью. Выглядит это приблизительно так:

gif/43_2.gif (4050 b)

Теперь разделитель будет во время проектирования двигаться при изменении размеров нижнего объекта, а во время выполнения - при перетаскивании его самого. Что от него и требовалось :).

Как пример кода к вышепоказанной (или вышезагруженной :)) форме:

void __fastcall TForm1::LoadClick(TObject *Sender)
{
	if(!dynamic_cast<TMenuItem*>(Sender))return;
	if(!OpenDialog->Execute())return;
	TMemo* memos[]={Memo1,Memo2};
	memos[((TComponent*)Sender)->Tag]->Lines->LoadFromFile(OpenDialog->FileName);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::CloseClick(TObject *Sender)
{
	Close();
}
//---------------------------------------------------------------------------

Необходимо пояснить, что для элементов меню, видимых на экране ("Загрузить Memo1/2") я установил обработчик один - LoadClick, а свойство Tag - в 0 и 1 соответственно. В общем-то это было сделано для сокращения объяма кода ценой его простоты. Лично я подобное использую довольно часто.

Еще у него есть пара свойств. Свойство Beveled управляет 3D отображением компонента. Свойство ResizeStyle управляет вариантами перемещения сплиттера. Свойство MinSize говорит, меньше какого размера нельзя задвинуть разделитель. А так - все.

Предыдущий шаг | Оглавление | Следующий шаг

Рассылка новостей
Рейтинги
© 2007, Программирование Исходники.Ру