Як приховати у TabControl вкладки?
Хто підкаже, як приховати у TabControl вкладки
Заздалегідь дякую
Якщо Ви по вкладками имели ввиду кнопки перемикання сторінок, то
змусити приховати вкладки TabControl "самостійно" - не вийде, але можна вдатися до такого трюку:
Перевести вкладки вниз (tcoBottom = TRUE) і обрізати регіон відтворення.
Приблизно так:
var
# XA0; Rgn: HRGN
.
# XA0; # XA0; Rgn: = CreateRectRgn (0,4, TabControl1.Width-1, TabControl1.Height-22);
# XA0; # XA0; SetWindowRgn (TabControl1.GetWindowHandle, Rgn, TRUE);
Якщо вкладки - це сторінки - ІМХО: треба їх (сторінки) видаляти, а при необхідності показу вставляти назад.
Правильніше використовувати TC_DisplayRect, він повертає координати прямокутника, який і повинен залишитися після обрізки.
А ще можна створити для tabContorl подія OnPaint і нічого в ньому не малювати:
procedure TForm1.TabControl1Paint (Sender: PControl; DC: HDC);
begin
//
end;
Але [2] + [3], звичайно, правильніше :)
Так просто хочеться зробити щось на кшталт зв'язки TreeView + TabControl (на зразок вікно настройки в LightAlloy або TotalCommander) ну типу клацаєш в TreeView і в залежності від обраної рядки з'являється потрібна вкладка. Я все це зробив, а ось вкладки виглядають ні до місця адже TreeView є.
На мою в даному випадку не варто зв'язуватися з TabControl.
Чому просто не наляпать панелей один на одного і робити BringToFront.
Кладемо головну панель, а на неї панелі з елементами управління. Робимо у них Align = caClient.
Вийшло дуже просто:
# XA0; TVItem: = TreeView1.TVInsert (0, 0, "Пункт 1");
# XA0; TreeView1.TVItemData [TVItem]: = Panel1;
# XA0; TVItem: = TreeView1.TVInsert (0, TVItem, "Пункт 2");
# XA0; TreeView1.TVItemData [TVItem]: = Panel2;
# XA0; TVItem: = TreeView1.TVInsert (0, TVItem, "Пункт 3");
# XA0; TreeView1.TVItemData [TVItem]: = Panel3;
procedure TForm1.TreeView1Change (Sender: PObj);
begin
# XA0; TKOLPanel (TreeView1.TVItemData [TreeView1.TVSelected]). BringToFront;
end
> На мою в даному випадку не варто зв'язуватися з TabControl
ІМХО: Навпаки. Мені, особисто, більше подобається використовувати в цьому випадку
TabControl - при великій кількості панелей набагато легше щось виправляти в design-time. У Вашому випадку - виходить занадто багато рухів тіла треба виконати, щоб дістатися до потрібної панелі, для редагування. (Повоторюсь - це ІМХО і тільки для MCK)
Пам'ять: 0.73 MB
Час: 0.107 c