Форум: "Основная";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
ВнизКак 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.046 c