Конференция "Основная" » Переопределение обработчика отрисовки заголовка в VirtualStringTr [D7, WinXP]
 
  • AndrewK (11.02.08 13:22) [0]
    Доброго времени суток!

    Подскажите, пожалуйста, что я неправильно сделал?
    Хочу написать наследника от TVirtualStringTree, который бы по другому отрисовывал заголовки.

    Вот код:

    TVST = class(VirtualTrees.TVirtualStringTree)
     private
       procedure DoHeaderDrawQueryElements(var PaintInfo: THeaderPaintInfo; var Elements: THeaderPaintElements); override;
       procedure DoAdvancedHeaderDraw(var PaintInfo: THeaderPaintInfo; const Elements: THeaderPaintElements); override;
     end;

    ...

    procedure TVST.DoHeaderDrawQueryElements(var PaintInfo: THeaderPaintInfo;
     var Elements: THeaderPaintElements);
    begin
     inherited;
     Elements := [hpeBackground];
    end;

    procedure TVST.DoAdvancedHeaderDraw(var PaintInfo: THeaderPaintInfo;
     const Elements: THeaderPaintElements);
    begin
     inherited;
     PaintInfo.TargetCanvas.Pen.Color := clGreen;
     PaintInfo.TargetCanvas.FillRect(PaintInfo.PaintRectangle);
    end;

    ...

    procedure TForm1.FormCreate(Sender: TObject);
    begin
     VST:= TVST.Create(Self);
     VST.Parent := Panel2;
     VST.Align := alClient;
     VST.Show;
     VST.Header.Assign(VirtualStringTree1.Header);  // Копирую из созданного в DT компонента
    end;

    Отрисовка не производится. При трассировке в данные процедуры даже не заходит.

    Если сделать то же при помощи обрабочиков событий для стандартного компонента, то все работает замечательно.
 
Конференция "Основная" » Переопределение обработчика отрисовки заголовка в VirtualStringTr [D7, WinXP]
Есть новые Нет новых   [134482   +34][b:0][p:0]