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