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

Вниз

Как PageControl заставить измерить ширину tab a?   Найти похожие ветки 

 
Aleksandr.   (2004-09-20 19:18) [0]

PageControl у меня имеет OwnerDraw=true и обработчик на OnDrawItem. Когда Tab"ов у него больше одного, обработка срабатывает нормально. А вот когда только у одного Tab"a TabVisible=true, в обработчике наблюдается проблема - передаваемый в него Rect имеет какие-то размеры по умолчанию, которые конкретно у меня не вмещают по длине заголовок Tab"a. Никакого OnMeasureItem я у него не наблюдаю. Как заставить PageControl правильно отсчитать размеры этого Tab"a?

ЗЫ: Для любителей кричать: "А где код, зараза!":

procedure TPropertyForm.PageControlDrawTab(Control: TCustomTabControl;
 TabIndex: Integer; const Rect: TRect; TabActive: Boolean);
var
 x, y : integer;
 Col  : TColor;
begin
 PageControl.Canvas.FillRect(Rect);
 if TabActive then begin
   PageControl.Canvas.Brush.Color:=clWhite;
   PageControl.Canvas.Font.Color:=clBlue
 end;
 x:=Rect.Left+((Rect.Right-Rect.Left-PageControl.Canvas.TextWidth(PageControl.Pages[TabIndex].Caption)) div 2);
 y:=Rect.Top+((Rect.Bottom-Rect.Top-PageControl.Canvas.TextHeight("A")) div 2);
 Col:=PageControl.Canvas.Pen.Color;
 PageControl.Canvas.Pen.Color:=Canvas.Brush.Color;
 PageControl.Canvas.RoundRect(Rect.Left+1,Rect.Top+1,Rect.Right-1,Rect.Bottom-1,3,3);
 PageControl.Canvas.Pen.Color:=Col;
 PageControl.Canvas.TextOut(x,y,PageControl.Pages[TabIndex].Caption)
end;



 
Defunct ©   (2004-09-20 19:25) [1]

OwnerDraw := False


 
clickmaker ©   (2004-09-20 19:27) [2]


> ЗЫ: Для любителей кричать: "А где код, зараза!":

Блин, весь кайф обломал... Так хотелось крикнуть


 
Aleksandr.   (2004-09-20 19:36) [3]

Defunct ©  :

А мне нужен мой обработчик. Не нравится, когда на форме цвета новых стандартов закладки старого серого цвета. А без своего обработчика это никак.


 
clickmaker ©   (2004-09-20 19:42) [4]


> [3] Aleksandr.   (20.09.04 19:36)

TCM_SETMINTABWIDTH не помогает?


 
clickmaker ©   (2004-09-20 19:47) [5]

Как вариант можно еще подменить WindowProc у пэйджконтрола, ловить WM_MEASUREITEM


 
Aleksandr.   (2004-09-20 19:49) [6]

clickmaker ©  :

Спасибо, попробую!



Страницы: 1 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.023 c
6-1090973055
Лев Ландау
2004-07-28 04:04
2004.10.03
Как вытащить текущее значение URL из TWebBrowser-a?


8-1087894955
Borealis
2004-06-22 13:02
2004.10.03
Изображения ключевых кадров из авишки (RIFF_AVI)


1-1095262239
Slaviq
2004-09-15 19:30
2004.10.03
Печать через темопринтер BZ-2


8-1089126295
Popovich A.
2004-07-06 19:04
2004.10.03
Трансформация BMP в JPG


1-1095319508
ksa2002
2004-09-16 11:25
2004.10.03
Рестарт Формы .