Уважаемые форумчане! Я столкнулся с неожиданной проблемой при наследовании от TdxNavBar.
| Код | uses System.SysUtils, System.Classes, Vcl.Controls, Vcl.Forms, Vcl.ImgList, Vcl.ActnList, System.IniFiles, Vcl.Menus, // --------------- cxControls, dxNavBarConsts, dxNavBar, dxNavBarCollns, dxNavBarOffice12Views, dxNavBarSkinBasedViews, // ----------
const isNavBarView = dxNavBarAccordionView + 1;
type TisLinkViewInfo = class(TdxNavBarLinkViewInfo) end;
TisViewInfo = class(TdxNavBarSkinBasedExplorerBarViewInfo) end;
TisOutlookBarPainter = class(TdxNavBarOffice12ExplorerBarPainter) protected class function GetViewInfoClass: TdxNavBarViewInfoClass; override; class function GetLinkViewInfoClass: TdxNavBarLinkViewInfoClass; override; end;
TisOutlookBar = class(TdxNavBar) protected procedure Loaded; override; end;
implementation
uses dxNavBarViewsFact, dxNavBarGroupItems;
{ TisOutlookBar }
procedure TisOutlookBar.Loaded; begin if not(csDesigning in ComponentState) then begin ViewReal := isNavBarView; end; inherited Loaded; end;
procedure RegisterView(AID: Integer; AName: string; APainterClass: TdxNavBarPainterClass); begin if dxNavBarViewsFactory <> nil then dxNavBarViewsFactory.RegisterView(AID, AName, APainterClass); end;
procedure UnRegisterView(AID: Integer); begin if dxNavBarViewsFactory <> nil then dxNavBarViewsFactory.UnRegisterView(AID); end;
{ TisOutlookBarPainter }
class function TisOutlookBarPainter.GetLinkViewInfoClass: TdxNavBarLinkViewInfoClass; begin Result := TisLinkViewInfo; end;
class function TisOutlookBarPainter.GetViewInfoClass: TdxNavBarViewInfoClass; begin Result := TisViewInfo; end;
initialization
RegisterView(isNavBarView, 'My OutlookBar Painter', TisOutlookBarPainter);
finalization
UnRegisterView(isNavBarView);
end.
|
то есть, я регистрирую свой TisOutlookBarPainter, и подключаю его по завершению загрузки TisOutlookBar. тут всё нормально, TisOutlookBarPainter создаётся, однако метод GetLinkViewInfoClass никогда не срабатывает, хотя метод GetViewInfoClass отрабатывает.
Отзовитесь, кто-нибудь знает в чём проблема?! |