Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
3-1094053694
Алексей
2004-09-01 19:48
2004.10.03
FOX,ADO и отрицательные числа


14-1094843017
Sam007
2004-09-10 23:03
2004.10.03
У кого установленна делфи 6


14-1093916546
Александр1
2004-08-31 05:42
2004.10.03
Меню windows


4-1093427216
beatles_bntu
2004-08-25 13:46
2004.10.03
Системный запуск приложения под XP


6-1090999597
wHammer
2004-07-28 11:26
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский