Главная страница
    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.45 MB
Время: 0.039 c
1-1095182505
Сергей
2004-09-14 21:21
2004.10.03
Текстуру на форму.


4-1093718778
Vasya.ru
2004-08-28 22:46
2004.10.03
Программно изменить размер файла подкачки


14-1095141285
Мазут Береговой
2004-09-14 09:54
2004.10.03
Ну, вот всё встало на свои места... :-)


3-1094036403
Andrey
2004-09-01 15:00
2004.10.03
Создание псевдонима при инсталяции


3-1094203637
Ира
2004-09-03 13:27
2004.10.03
Вставка данных в таблицу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский