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

Вниз

Почему неправильно рисуется PageControl?   Найти похожие ветки 

 
Aleksandr ©   (2003-10-30 13:09) [0]

Перекрыл отрисовку закладок у PageControl:


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


И теперь он у меня на всех закладках рисует текст активной закладки. Что я тут неправильно наделал?


 
Sandman25 ©   (2003-10-30 13:11) [1]

with TPageControl(Control) do begin
Canvas.FillRect(Rect);
if Active then begin

означает, что используется TPageControl(Control).Active, а не параметр процедуры.


 
Sandman25 ©   (2003-10-30 13:13) [2]

Нет, я соврал. Попробуйте присваивать не Canvas.Font, а просто Font.


 
Song ©   (2003-10-30 13:13) [3]

Это пример как необдуманно использовать With. TabIndex у тебя берётся как проперти TPageControl, а не как параметр, пришедший в обработчик.


 
Sandman25 ©   (2003-10-30 13:14) [4]

Если не поможет, добавтье ветвь else и в ней присваивайте другие значения.


 
афвуд ©   (2003-10-30 13:55) [5]

Можно вопрос в тему?

Рисую на канве этого PageControl. Потом говорю ему - перерисуйся(Repaint(), Invalidate(), щас буду пробовать послать ему виндовое сообщение на перерисовку). А он, блин, не стирает всё то, что я на нём нарисовал. Почему?



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

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

Наверх




Память: 0.48 MB
Время: 0.025 c
3-40911
Oleg Barsky
2003-10-20 11:56
2003.11.13
Delete и обратно


1-41657
Rimas
2003-10-25 14:32
2003.11.13
русский help


14-41915
icebeerg
2003-10-21 13:30
2003.11.13
О списании


1-41543
TSa
2003-10-20 00:37
2003.11.13
Просмотр ДОС


1-41277
.0.
2003-10-31 14:30
2003.11.13
как сделать чтобы функция вернула не одно ,а несколько значений с