Форум: "KOL";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];
ВнизКак скрыть у TabControl вкладки? Найти похожие ветки
← →
BaryV (2005-11-22 15:49) [0]Кто подскажет, как скрыть у TabControl вкладки
Заранее спасибо
← →
BaryV (2005-11-22 16:23) [1]Ну конечно для KOL :-)
← →
ECM © (2005-11-22 17:47) [2]Если Вы по вкладками имели ввиду кнопки переключения страниц, то
заставить скрыть вкладки TabControl "самостоятельно" - не получится, но можно прибегнуть к такому трюку:
Перевести вкладки вниз (tcoBottom = TRUE) и обрезать регион отрисовки.
Примерно так:var
Rgn: HRGN
...
Rgn := CreateRectRgn(0,4,TabControl1.Width-1,TabControl1.Height-22);
SetWindowRgn(TabControl1.GetWindowHandle,Rgn,TRUE);
Если вкладки - это страницы - ИМХО: надо их (страницы) удалять, а при необходимости показа вставлять обратно...
← →
Vladimir Kladov (2005-11-22 19:06) [3]Правильнее использовать TC_DisplayRect, он возвращает координаты прямоугольника, который и должен остаться после обрезки.
← →
z007 (2005-11-22 22:42) [4]А еще можно создать для tabContorl событие OnPaint и ничего в нем не отрисовывать:
procedure TForm1.TabControl1Paint(Sender: PControl; DC: HDC);
begin
//
end;
Но [2] + [3], конечно, правильней :)
← →
BaryVetaL © (2005-11-23 10:41) [5]Да просто хочется сделать что-то вроде связки TreeView + TabControl (наподобие окно настройки в LightAlloy или TotalCommander) ну типа щелкаешь в TreeView и в зависимости от выбранной строки появляется нужная вкладка. Я все это сделал, а вот вкладки выглядят ни к месту ведь TreeView есть ...
Еще раз спасибо.
← →
-=Mike=- (2005-11-23 14:24) [6]По моему в данном случае не стоит связываться с 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
← →
ECM © (2005-11-23 15:59) [7]
> По моему в данном случае не стоит связываться с TabControl
ИМХО: Наоборот... Мне, лично, больше нравится использовать в этом случае
TabControl - при большом количестве панелей гораздо легче что-то исправлять в design-time. В Вашем случае - получается слишком много телодвижений надо выполнить, чтобы добраться до нужной панели, для редактирования... (повоторюсь - это ИМХО и только для MCK)
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c