⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dxribbon.pas

📁 胜天进销存源码,国产优秀的进销存
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    TcxComponentCollectionItem,
  {$IFNDEF DELPHI6}
    IUnknown,
  {$ENDIF}
    IdxBarSelectableItem,
    IdxFadingObject
  )
  private
    FCaption: string;
    FDesignSelectionHelper: IdxBarSelectableItem;
    FDockControl: TdxRibbonGroupsDockControl;
    FFadingElementData: IdxFadingElementData;
    FGroups: TdxRibbonTabGroups;
    FIAccessibilityHelper: IdxBarAccessibilityHelper;
    FKeyTip: string;
    FLastIndex: Integer;
    FLocked: Boolean;
    FRibbon: TdxCustomRibbon;
    FVisible: Boolean;
    function GetActive: Boolean;
    function GetFocused: Boolean;
    function GetHighlighted: Boolean;
    function GetIAccessibilityHelper: IdxBarAccessibilityHelper;
    function GetIsDestroying: Boolean;
    function GetViewInfo: TdxRibbonTabViewInfo;
    function GetVisibleIndex: Integer;
    procedure SetActive(Value: Boolean);
    procedure SetCaption(const Value: string);
    procedure SetHighlighted(Value: Boolean);
    procedure SetRibbon(Value: TdxCustomRibbon);
    procedure SetGroups(const Value: TdxRibbonTabGroups);
    procedure SetVisible(Value: Boolean);
  protected
    //IdxFadingObject
    procedure IdxFadingObject.DrawFadeImage = FadingDrawFadeImage;
    procedure IdxFadingObject.GetFadingParams = FadingGetFadingParams;
    procedure FadingBegin(AData: IdxFadingElementData);
    function CanFade: Boolean;
    procedure FadingDrawFadeImage;
    procedure FadingEnd;
    procedure FadingGetFadingParams(
      out AFadeOutImage, AFadeInImage: TcxBitmap;
      var AFadeInAnimationFrameCount, AFadeInAnimationFrameDelay: Integer;
      var AFadeOutAnimationFrameCount, AFadeOutAnimationFrameDelay: Integer);
    //inherited
    function GetCollectionFromParent(AParent: TComponent): TcxComponentCollection; override;
    function GetDisplayName: string; override;
    procedure Loaded; override;
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
    procedure SetName(const Value: TComponentName); override;
    //methods
    procedure Activate; virtual;
    procedure CheckGroupToolbarsDockControl;
    procedure Deactivate; virtual;
    function GetAccessibilityHelperClass: TdxBarAccessibilityHelperClass; virtual;
    function GetDockControlBounds: TRect; virtual;
    function GetGroupClass: TdxRibbonTabGroupClass; virtual;
    procedure ScrollDockControlGroups(AScrollLeft, AOnTimer: Boolean);
    procedure UpdateBarManager(ABarManager: TdxBarManager);
    procedure UpdateColorScheme; virtual;
    procedure UpdateDockControl;
    procedure UpdateDockControlBounds;
    procedure UpdateGroupsFont;

    property DesignSelectionHelper: IdxBarSelectableItem
      read FDesignSelectionHelper implements IdxBarSelectableItem;
    property Focused: Boolean read GetFocused;
    property Highlighted: Boolean read GetHighlighted write SetHighlighted;
    property IsDestroying: Boolean read GetIsDestroying;
    property LastIndex: Integer read FLastIndex;
    property Locked: Boolean read FLocked;
    property ViewInfo: TdxRibbonTabViewInfo read GetViewInfo;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure Assign(Source: TPersistent); override;
    procedure AddToolBar(AToolBar: TdxBar);
    procedure Invalidate;
    procedure MakeVisible;

    property DockControl: TdxRibbonGroupsDockControl read FDockControl;
    property IAccessibilityHelper: IdxBarAccessibilityHelper read GetIAccessibilityHelper;
    property Ribbon: TdxCustomRibbon read FRibbon write SetRibbon;
  published
    property Active: Boolean read GetActive write SetActive default False;//stored False;
    property Caption: string read FCaption write SetCaption;
    property Groups: TdxRibbonTabGroups read FGroups write SetGroups;
    property KeyTip: string read FKeyTip write FKeyTip;
    property Visible: Boolean read FVisible write SetVisible default True;
    property VisibleIndex: Integer read GetVisibleIndex;
  end;

  TdxRibbonTabCollection = class(TcxComponentCollection)
  private
    FIAccessibilityHelper: IdxBarAccessibilityHelper;
    FOwner: TdxCustomRibbon;
    function GetIAccessibilityHelper: IdxBarAccessibilityHelper;
    function GetItem(Index: Integer): TdxRibbonTab;
    procedure SetItem(Index: Integer; const Value: TdxRibbonTab);
  protected
    function GetAccessibilityHelperClass: TdxBarAccessibilityHelperClass; virtual;
    procedure Notify(AItem: TcxComponentCollectionItem;
      AAction: TcxComponentCollectionNotification); override;
    procedure SetItemName(AItem: TcxComponentCollectionItem); override;
    procedure Update(AItem: TcxComponentCollectionItem;
      AAction: TcxComponentCollectionNotification); override;
    procedure UpdateBarManager(ABarManager: TdxBarManager);

    property IAccessibilityHelper: IdxBarAccessibilityHelper read GetIAccessibilityHelper;
    property Owner: TdxCustomRibbon read FOwner;
  public
    constructor Create(AOwner: TdxCustomRibbon); reintroduce;
    destructor Destroy; override;
    function Add: TdxRibbonTab;

    function Insert(AIndex: Integer): TdxRibbonTab;
    property Items[Index: Integer]: TdxRibbonTab read GetItem write SetItem; default;
  end;

  { TdxRibbonFonts }

  TdxRibbonAssignedFont = (afTabHeader, afGroup, afGroupHeader);
  TdxRibbonAssignedFonts = set of TdxRibbonAssignedFont;

  TdxRibbonFonts = class(TPersistent)
  private
    FAssignedFonts: TdxRibbonAssignedFonts;
    FDocumentNameColor: TColor;
    FCaptionFont: TFont;
    FFont: TFont;
    FFonts: array[TdxRibbonAssignedFont] of TFont;
    FLocked: Boolean;
    FRibbon: TdxCustomRibbon;
    procedure FontChanged(Sender: TObject);
    function GetDefaultCaptionTextColor(AIsActive: Boolean): TColor;
    function GetFont(const Index: Integer): TFont;
    function IsFontStored(const Index: Integer): Boolean;
    procedure SetAssignedFonts(const Value: TdxRibbonAssignedFonts);
    procedure SetDocumentNameColor(const Value: TColor);
    procedure SetFont(const Index: Integer; const Value: TFont);
    procedure UpdateGroupsFont;
  protected
    procedure Invalidate;
    procedure UpdateDefaultFont(I: TdxRibbonAssignedFont);
    procedure UpdateFonts;
    property Locked: Boolean read FLocked;
  public
    constructor Create(AOwner: TdxCustomRibbon); virtual;
    destructor Destroy; override;
    procedure Assign(Source: TPersistent); override;

    function GetFormCaptionFont(AIsActive: Boolean): TFont; virtual;
    function GetGroupFont: TFont; virtual;
    function GetGroupHeaderFont: TFont; virtual;
    function GetTabHeaderFont(AState: Integer): TFont; virtual;

    property Ribbon: TdxCustomRibbon read FRibbon;
  published
    property AssignedFonts: TdxRibbonAssignedFonts
      read FAssignedFonts write SetAssignedFonts default [];
    property DocumentNameColor: TColor
      read FDocumentNameColor write SetDocumentNameColor default clDefault;
    property Group: TFont index Ord(afGroup)
      read GetFont write SetFont stored IsFontStored;
    property GroupHeader: TFont index Ord(afGroupHeader)
      read GetFont write SetFont stored IsFontStored;
    property TabHeader: TFont index Ord(afTabHeader)
      read GetFont write SetFont stored IsFontStored;
  end;

  { TdxRibbonPopupMenu }

  TdxRibbonPopupMenu = class(TdxBarPopupMenu)
  private
    FRibbon: TdxCustomRibbon;
    procedure CheckAssignRibbon;
    procedure SetRibbon(Value: TdxCustomRibbon);
  protected
    function CreateBarControl: TCustomdxBarControl; override;
    function GetControlClass: TCustomdxBarControlClass; override;
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
  public
    constructor Create(AOwner: TComponent); override;
  published
    property Ribbon: TdxCustomRibbon read FRibbon write SetRibbon;
  end;

  { TdxRibbonPopupMenuControl }

  TdxRibbonPopupMenuControl = class(TdxBarSubMenuControl)
  protected
    function GetBehaviorOptions: TdxBarBehaviorOptions; override;
  end;

  { TdxBarApplicationMenu }
  
  TdxBarApplicationMenu = class(TdxBarCustomApplicationMenu)
  protected
    function GetControlClass: TCustomdxBarControlClass; override;
  published
    property BackgroundBitmap;
    property BarManager;
    property BarSize;
    property Buttons;
    property ExtraPane;
    property ExtraPaneEvents;
    property Font;
    property ItemLinks;
    property ItemOptions;
    property UseOwnFont;

    property OnCloseUp;
    property OnPaintBar;
    property OnPopup;

    // obsolette
    property ExtraPaneWidthRatio stored False;
    property ExtraPaneSize stored False;
    property ExtraPaneItems stored False;
    property ExtraPaneHeader stored False;
    property OnExtraPaneItemClick stored False;
  end;

  TdxRibbonApplicationMenuControl = class(TdxBarApplicationMenuControl)
  private
    function GetRibbon: TdxCustomRibbon;
    procedure DoPopupMenuClick(Sender: TObject);
    procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
  protected
    function GetBehaviorOptions: TdxBarBehaviorOptions; override;
    procedure InitCustomizationPopup(AItemLinks: TdxBarItemLinks); override;

    function GetPopupMenuItems: TdxRibbonPopupMenuItems;
    procedure PopupMenuClick(Sender: TObject);
    property Ribbon: TdxCustomRibbon read GetRibbon;
  end;

  { TdxRibbonController }

  TdxRibbonController = class(TcxIUnknownObject, IdxBarHintKeeper)
  private
    FHintInfo: TdxRibbonHitInfo;
    FHotObject: TdxRibbonHitTest;
    FPressedObject: TdxRibbonHitTest;
    FRibbon: TdxCustomRibbon;
    FScrollKind: TdxRibbonHitTest;
    FScrollTimer: TTimer;
    procedure CancelScroll;
    function CanProcessDesignTime: Boolean;
    procedure ClearHintInfo;
    procedure CreateTimer;
    function GetViewInfo: TdxRibbonViewInfo;
    procedure Invalidate(AOld, ANew: TdxRibbonHitTest);
    procedure InvalidateScrollButtons;
    procedure InvalidateButtons;
    procedure OnTimer(Sender: TObject);
    procedure StartScroll(AScrollKind: TdxRibbonHitTest);
    procedure SetHintInfo(const Value: TdxRibbonHitInfo);
    procedure SetHotObject(const Value: TdxRibbonHitTest);
    procedure SetPressedObject(const Value: TdxRibbonHitTest);
  protected
    // IdxBarHintKeeper
    function DoHint(var ANeedDeactivate: Boolean; out AHintText: string; out AShortCut: string): Boolean;
    function CreateHintViewInfo(const AHintText, AShortCut: string): TdxBarCustomHintViewInfo;
    function GetEnabled: Boolean;
    function GetHintPosition(const ACursorPos: TPoint; AHeight: Integer): TPoint;

    procedure CancelHint;
    procedure CancelMode; virtual;
    procedure CheckButtonsMouseUp(X: Integer; Y: Integer);
    procedure DesignTabMenuClick(Sender: TObject);
    procedure DoScroll(AOnTimer: Boolean);
    procedure HideHint; virtual;
    procedure InitTabDesignMenu(AItemLinks: TdxBarItemLinks); virtual;
    function IsApplicationMenuDropped: Boolean;
    function IsNeedShowHint(AObject: TdxRibbonHitTest): Boolean; virtual;
    function IsOwnerForHintObject(AObject: TdxRibbonHitTest): Boolean; virtual;
    procedure KeyDown(var Key: Word; Shift: TShiftState); virtual;
    procedure KeyPress(var Key: Char); virtual;
    procedure KeyUp(var Key: Word; Shift: TShiftState); virtual;
    procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); virtual;
    procedure MouseLeave; virtual;
    procedure MouseMove(Shift: TShiftState; X, Y: Integer); virtual;
    procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); virtual;
    function MouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; virtual;
    function MouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; virtual;
    function NotHandleMouseMove(P: TPoint): Boolean; virtual;
    procedure ProcessTabClick(ATab: TdxRibbonTab; Button: TMouseButton; Shift: TShiftState);
    procedure ScrollGroups(AScrollLeft, AOnTimer: Boolean);
    procedure ScrollTabs(AScrollLeft, AOnTimer: Boolean);
    procedure ShowTabDesignMenu; virtual;
    property HintInfo: TdxRibbonHitInfo read FHintInfo write SetHintInfo;
    property HotObject: TdxRibbonHitTest read FHotObject write SetHotObject;
    property PressedObject: TdxRibbonHitTest read FPressedObject write SetPressedObject;
  public
    constructor

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -