![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как скрыть у TabControl вкладки? [Delphi]
BaryV © (2005-11-22 15:49:00)Кто подскажет, как скрыть у TabControl вкладки
Заранее спасибо
ECM (2005-11-23 15:59:00) [1]
> По моему в данном случае не стоит связываться с TabControl
ИМХО: Наоборот... Мне, лично, больше нравится использовать в этом случае
TabControl - при большом количестве панелей гораздо легче что-то исправлять в design-time. В Вашем случае - получается слишком много телодвижений надо выполнить, чтобы добраться до нужной панели, для редактирования... (повоторюсь - это ИМХО и только для MCK)
-=Mike=- (2005-11-23 14:24:00) [2]По моему в данном случае не стоит связываться с TabControl.
Почему просто не наляпать панелей друг на друга и делать BringToFront.
Ложим главную панель, а на нее панели с элементами управления. Делаем у них Align=caClient.
Получилось очень просто:
TVItem:= TreeView1.TVInsert( 0, 0, 'Пункт 1' );
TreeView1.TVItemData[TVItem]:= Panel1;
TVItem:= TreeView1.TVInsert( 0, TVItem, 'Пункт 2' );
TreeView1.TVItemData[TVItem]:= Panel2;
TVItem:= TreeView1.TVInsert( 0, TVItem, 'Пункт 3' );
TreeView1.TVItemData[TVItem]:= Panel3;
....
procedure TForm1.TreeView1Change(Sender: PObj);
begin
TKOLPanel(TreeView1.TVItemData[TreeView1.TVSelected]).BringToFront;
end
BaryVetaL (2005-11-23 10:41:00) [3]Да просто хочется сделать что-то вроде связки TreeView + TabControl (наподобие окно настройки в LightAlloy или TotalCommander) ну типа щелкаешь в TreeView и в зависимости от выбранной строки появляется нужная вкладка. Я все это сделал, а вот вкладки выглядят ни к месту ведь TreeView есть ...
Еще раз спасибо.
z007 (2005-11-22 22:42:00) [4]А еще можно создать для tabContorl событие OnPaint и ничего в нем не отрисовывать:
procedure TForm1.TabControl1Paint(Sender: PControl; DC: HDC);
begin
//
end;
Но [2] + [3], конечно, правильней :)
Vladimir Kladov (2005-11-22 19:06:00) [5]Правильнее использовать TC_DisplayRect, он возвращает координаты прямоугольника, который и должен остаться после обрезки.
ECM (2005-11-22 17:47:00) [6]Если Вы по вкладками имели ввиду кнопки переключения страниц, то
заставить скрыть вкладки TabControl "самостоятельно" - не получится, но можно прибегнуть к такому трюку:
Перевести вкладки вниз (tcoBottom = TRUE) и обрезать регион отрисовки.
Примерно так:
var
Rgn: HRGN
...
Rgn := CreateRectRgn(0,4,TabControl1.Width-1,TabControl1.Height-22);
SetWindowRgn(TabControl1.GetWindowHandle,Rgn,TRUE);
Если вкладки - это страницы - ИМХО: надо их (страницы) удалять, а при необходимости показа вставлять обратно...
BaryV (2005-11-22 16:23:00) [7]Ну конечно для KOL :-)