Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.24;
Скачать: CL | DM;

Вниз

Как скрыть у 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 вся ветка

Текущий архив: 2006.09.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.05 c
15-1157185940
мнм
2006-09-02 12:32
2006.09.24
программист <> кодер


15-1157027349
Сергей М.
2006-08-31 16:29
2006.09.24
Кто-нть инсталлил MacOS x86 ? Ей чего надо - свободный раздел ?


15-1157037980
Alx_
2006-08-31 19:26
2006.09.24
madCollection


2-1157364800
Ragazor
2006-09-04 14:13
2006.09.24
Как создать в Dll переменную TDataModule из DataModule1.pas


15-1157049780
Chort
2006-08-31 22:43
2006.09.24
сабж