-
Доброго времени суток!
Подскажите, пожалуйста, что я неправильно сделал? Хочу написать наследника от 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;
Отрисовка не производится. При трассировке в данные процедуры даже не заходит.
Если сделать то же при помощи обрабочиков событий для стандартного компонента, то все работает замечательно.
|