Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.07.2009, 16:42   #1
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
Вопрос как отрисовать tab-ы в pagecontrol?

Привет всем. Как можно отрисовать табы в pagecontrol в событии ondrawtab? если можно небольшой пример или статейку. Спсибо.
blackstersl вне форума Ответить с цитированием
Старый 09.07.2009, 16:51   #2
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Просто, рисуйте например так:
Код:
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
begin
 PageControl1.Canvas.Brush.Color := clRed;
 PageControl1.Canvas.Rectangle(Rect);
end;
Только одно, установите свойство OwnerDraw у PageControl'а в true
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 09.07.2009, 17:08   #3
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
По умолчанию

А как сделать что б вместо табов были картинки?
blackstersl вне форума Ответить с цитированием
Старый 09.07.2009, 17:17   #4
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Вот, не самый лучший, пример:
Код:
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
 b: TBitmap;
begin
 b := TBitmap.Create;
 try
  b.LoadFromFile('D:\1.bmp');
  b.Width := Rect.Right - Rect.Left;
  b.Height := Rect.Bottom - Rect.Top;
  PageControl1.Canvas.Draw(Rect.Left, Rect.Top, b);
 finally
  b.Free;
 end;
end;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 09.07.2009, 17:40   #5
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
По умолчанию

хорошо за превыдущий ответ +1, а как убрать рамку в табах или(3d? незнаю как его назвать), чтоб была пустота -).
blackstersl вне форума Ответить с цитированием
Старый 09.07.2009, 17:57   #6
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

В идеале можно использовать, например, Raize Components. Там у RzPageControl с помощью установки цветов закладок и их теней можно полностью убрать их границы, оставив только текст.
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как привязать ScrollBar к TabSheet в PageControl fen Компоненты Delphi 11 10.04.2012 19:39
Отправить TAB в ИЕ Bbo Win Api 0 20.04.2009 16:00
Как правильно использовать свойство CloseBtnSkin у PageControl из AlphaSkin (sPageControl) SibBear Компоненты Delphi 4 23.03.2009 18:43
Как убрать часть PageControl`a Lemo Общие вопросы Delphi 1 16.03.2009 16:43
Охота на Tab Reskov Общие вопросы C/C++ 7 24.12.2008 00:31