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

📄 dxribbongallery.pas

📁 胜天进销存源码,国产优秀的进销存
💻 PAS
📖 第 1 页 / 共 5 页
字号:

    procedure CalcDrawParams(AFull: Boolean = True); override;
    procedure ControlActivate(Immediately: Boolean); override;
    procedure ControlClick(AByMouse: Boolean; AKey: Char = #0); override;
    procedure CreateSubMenuControl; override;
    procedure DoCreateSubMenuControl; override;
    procedure DoPaint(ARect: TRect; PaintType: TdxBarPaintType); override;
    procedure FilterCaptionChanged;
    function GetAccessibilityHelperClass: TdxBarAccessibilityHelperClass; override;
    function GetGroups: TdxRibbonGalleryGroups;
    function GetSubMenuControl: TdxBarSubMenuControl; override;
    function GetViewInfoClass: TdxBarItemControlViewInfoClass; override;
    function GetVisibleGroupCount: Integer;
    function HasSubMenu: Boolean; override;
    function IsDestroyOnClick: Boolean; override;
    function IsEnabledScrollBar: Boolean;
    function IsHiddenForCustomization: Boolean; override;
    function IsNeedScrollBar: Boolean; virtual;
    function IsValidPainter: Boolean;

    procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
    procedure MouseLeave; override;
    procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
    procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;

    procedure DoScrollBarScroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer);
    procedure DoScrollBarMouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure ScrollBarSetup;
    procedure SetScrollBarPosition(APosition: Integer); virtual;

    property Collapsed: Boolean read GetCollapsed write SetCollapsed;
    property Controller: TdxRibbonGalleryController read FController;
    property LockCalcParts: Boolean read FLockCalcParts write FLockCalcParts;
    property ScrollBar: TdxRibbonGalleryScrollBar read FScrollBar;
    property SizeChanged: Boolean read FSizeChanged write FSizeChanged;
  public
    constructor Create(AItemLink: TdxBarItemLink); override;
    destructor Destroy; override;

    property ClientHeight: Integer read GetClientHeight;
    property ClientWidth: Integer read GetClientWidth;
    property Item: TdxRibbonGalleryItem read GetItem;
    property ViewInfo: TdxRibbonGalleryControlViewInfo read GetViewInfo;
  end;

  { TdxRibbonGalleryGroupElementViewInfo }

  TdxRibbonGalleryGroupElementViewInfo = class
  private
    FBounds: TRect;
    FOwner: TdxRibbonGalleryGroupViewInfo;
  protected
    function GetCaption: string; virtual; abstract;
    function GetFont: TFont; virtual;
    function GetGalleryItemControl: TdxRibbonGalleryControl;
    function GetTextFlags(AnAlignment: TAlignment): Integer;
  public
    constructor Create(AOwner: TdxRibbonGalleryGroupViewInfo);
    procedure Calculate(const ABounds: TRect); virtual;
    procedure Paint(ACanvas: TcxCanvas); virtual;

    property Bounds: TRect read FBounds;
    property Caption: string read GetCaption;
    property Font: TFont read GetFont;
    property Owner: TdxRibbonGalleryGroupViewInfo read FOwner;
  end;

  { TdxRibbonGalleryGroupHeaderViewInfo }

  TdxRibbonGalleryGroupHeaderViewInfo = class(TdxRibbonGalleryGroupElementViewInfo)
  private
    FTextBounds: TRect;
    function IsVisible: Boolean;
  protected
    function GetCaption: string; override;
    function GetHeight(AWidth: Integer; AWithSpaceAfterHeader: Boolean): Integer;
    function GetTextBounds: TRect; virtual;
  public
    procedure Calculate(const ABounds: TRect); override;
    procedure Paint(ACanvas: TcxCanvas); override;
    property TextBounds: TRect read FTextBounds;
  end;

  { TdxRibbonGalleryGroupItemViewInfo }

  TdxRibbonGalleryGroupItemViewInfo = class(TdxRibbonGalleryGroupElementViewInfo)
  private
    FCaptionBounds: TRect;
    FCaptionWidth: Integer;
    FDescriptionBounds: TRect;
    FDescriptionLength: Integer;
   // FDescriptionRect: TRect;
    FDescriptionRowCount: Integer;
    FDescriptionSize: TSize;
    FGroupItem: TdxRibbonGalleryGroupItem;
    FImageBounds: TRect;
    FPredefinedItemSize: TSize;
    procedure CheckCaptionFontStyle(AFont: TFont);
    function GetDescriptionLenght: Integer;
    function GetDescriptionRect: TRect;
    function GetDowned: Boolean;
    function GetHotGroupItem: TdxRibbonGalleryGroupItem;
    function GetHorizontalImageIndent: Integer;
    function GetImagePlace: TSize;
    function GetIsItemPullHighlighting: Boolean;
    function GetItemSize: TSize;
    function GetOptions: TdxRibbonGalleryGroupOptions;
    function GetPainter: TdxBarSkinnedPainter;
    function GetRectConsiderBounds(const ARect: TRect): TRect;
    function GetSelected: Boolean;
    function GetVerticalImageIndent: Integer;
    function IsCaptionVisible: Boolean;
    function IsDescriptionVisible: Boolean;
    function IsImageVisible: Boolean;
    function IsInplaceGallery: Boolean;
    function IsMergeItemsImages: Boolean;
    function IsThisGroupItem(AGroupItem: TdxRibbonGalleryGroupItem): Boolean;
    function ItemHeightWithoutImage: Integer;
    function ItemWidthWithoutImage: Integer;
  protected
    procedure DrawItemText(ACanvas: TcxCanvas); virtual;
    function GetCaption: string; override;
    function GetCaptionHeight: Integer; virtual;
    function GetCaptionWidth: Integer; virtual;
    function GetDescription: string; virtual;
    function GetDescriptionHeight: Integer; virtual;
    function GetDescriptionWidth: Integer; virtual;
    function GetHotTracked: Boolean;
    function GetSpaceBetweenItemCaptionAndDescription: Integer; virtual;
    function GetSpaceBetweenItemImageAndText: Integer; virtual;
    function GetImageSize: TSize; virtual;
    function GetUnsizedImageSize: TSize; virtual;

    function GetCaptionBounds: TRect; virtual;
    function GetDescriptionBounds: TRect; virtual;
    function GetImageBounds: TRect; virtual;
    function GetTextLeft: Integer; virtual;
    function GetTextRight: Integer; virtual;
    function GetTextTop: Integer; virtual;
    function IsBoldCaption: Boolean; virtual;

    procedure SetPredefinedItemSize(const AValue: TSize);

    property HorizontalImageIndent: Integer read GetHorizontalImageIndent;
    property HotGroupItem: TdxRibbonGalleryGroupItem read GetHotGroupItem;
    property IsItemPullHighlighting: Boolean read GetIsItemPullHighlighting;
    property ItemSize: TSize read GetItemSize;
    property Options: TdxRibbonGalleryGroupOptions read GetOptions;
    property Painter: TdxBarSkinnedPainter read GetPainter;
    property VerticalImageIndent: Integer read GetVerticalImageIndent;
  public
    constructor Create(AOwner: TdxRibbonGalleryGroupViewInfo; AGroupItem: TdxRibbonGalleryGroupItem);
    procedure Calculate(const ABounds: TRect); override;
    procedure Paint(ACanvas: TcxCanvas); override;
    property Description: string read GetDescription;
    property GroupItem: TdxRibbonGalleryGroupItem read FGroupItem;
  end;

  { TdxRibbonGalleryGroupViewInfo }

  TdxRibbonGalleryGroupRepaintPart = (ggrpAll, ggrpBefore, ggrpAfter, ggrpBetween);

  TdxRibbonGalleryGroupViewInfo = class
  private
    FBounds: TRect;
    FGroup: TdxRibbonGalleryGroup;
    FHeader: TdxRibbonGalleryGroupHeaderViewInfo;
    FItems: TcxObjectList;
    FItemSize: TSize;
    FOwner: TdxRibbonGalleryControlViewInfo;
    function GetFirstItemInGroupRow(ARowIndex, AColumnCount: Integer): Integer;
    function GetFont: TFont;
    function GetItem(Index: Integer): TdxRibbonGalleryGroupItemViewInfo;
    function GetItemCount: Integer;
    function GetItemSize: TSize;
    function GetOptions: TdxRibbonGalleryGroupOptions;
    function GetPainter: TdxBarSkinnedPainter;
  protected
    function CalculateItemSize(const APredefinedItemSize: TSize): TSize;
    procedure ClearItems;
    procedure CreateGroupItem(AItemIndex: Integer; const ABounds: TRect);
    function GetColumnCount(AWidth: Integer): Integer; virtual;
    function GetColumnCountInRow(ARow: Integer; AGroupWidth: Integer): Integer; virtual;
    function GetColumnLeft(AColumnIndex: Integer; AGroupLeft: Integer): Integer; virtual;
    function GetColumnWidth: Integer;
    function GetGroupWidth: Integer;
    function GetHeaderBounds(AGroupBounds: TRect): TRect;
    function GetItemColumn(AIndex: Integer; AGroupWidth: Integer): Integer;
    function GetItemIndex(ARow, AColumn: Integer; AGroupWidth: Integer): Integer;
    function GetItemRow(AGroupItemIndex: Integer; AGroupWidth: Integer): Integer;
    function GetLastItemInGroupRow(ARowIndex, AColumnCount: Integer): Integer;
    function GetRowCount(AGroupWidth: Integer): Integer;
    function GetRowHeight: Integer;
    function GetRowTop(ARowIndex: Integer; AGroupTop: Integer; AGroupWidth: Integer): Integer; virtual;
    function GetSpaceBetweenItems(IsAflat: Boolean): Integer;
    procedure RepaintChainOfItems(AnItemIndex: Integer; IsHotTrack: Boolean;
      ACanvas: TcxCanvas; APart: TdxRibbonGalleryGroupRepaintPart = ggrpAll;
      AnItemIndex2: Integer = 0);
    procedure SetBounds(const ABounds: TRect);

    property Font: TFont read GetFont;
    property Options: TdxRibbonGalleryGroupOptions read GetOptions;
    property Painter: TdxBarSkinnedPainter read GetPainter;
  public
    constructor Create(AOwner: TdxRibbonGalleryControlViewInfo;
      AGroup: TdxRibbonGalleryGroup; const AItemSize: TSize);
    destructor Destroy; override;
    procedure Calculate(AGroupTop, AGroupBottom: Integer; const AControlClientRect: TRect);
    function GetHeight(AWidth: Integer): Integer;
    procedure Paint(ACanvas: TcxCanvas);
    property Bounds: TRect read FBounds;
    property Group: TdxRibbonGalleryGroup read FGroup;
    property Header: TdxRibbonGalleryGroupHeaderViewInfo read FHeader;
    property ItemCount: Integer read GetItemCount;
    property Items[Index: Integer]: TdxRibbonGalleryGroupItemViewInfo read GetItem;
    property ItemSize: TSize read FItemSize;
    property Owner: TdxRibbonGalleryControlViewInfo read FOwner;
  end;

  { TdxRibbonGalleryControlViewInfo }

  TdxRibbonGalleryControlViewInfo = class(TdxBarItemControlViewInfo)
  private
    FDontDisplayHotTrackedGroupItem: Integer;
    FDontDisplayGroupHeaderWhenHotTrackingGroupItem: Integer;
    FDownedGroupItem: TdxRibbonGalleryGroupItem;
    FGlobalItemSize: TSize;
    FGroupItemStoredSizes: array of TSize;
    FHotGroupItem: TdxRibbonGalleryGroupItem;
    FLayoutOffset: Integer;

    function GetGroupCount: Integer;
    function GetGroups(Index: Integer): TdxRibbonGalleryGroupViewInfo;
    function GetGroupItemSize(AGroupIndex: Integer): TSize;

    procedure CalculateGlobalItemSize;
    function GetControl: TdxRibbonGalleryControl;
    function GetGalleryBounds: TRect;
    function GetGalleryItem: TdxRibbonGalleryItem;
    function GetGalleryOptions: TdxRibbonGalleryOptions;
    function GetGallerySize: TSize;
    function GetPainter: TdxBarSkinnedPainter;
    function GetScrollBarBounds: TRect;
    function GetScrollBarWidth: Integer;

    procedure DrawGroupItem(const AGroupItem: TdxRibbonGalleryGroupItem);
    procedure RepaintChainOfGroups(ANewItem, AOldItem: TdxRibbonGalleryGroupItem);
  protected
    FGroups: TcxObjectList;
    procedure DisplayGroupItem(AGroupItem: TdxRibbonGalleryGroupItem); virtual;
    procedure DrawBackground(const R: TRect); virtual; abstract;
    procedure DrawSelectedGroupItem(ASelectedGroupItem, AOldSelectedGroupItem: TdxRibbonGalleryGroupItem);
    procedure GalleryChanged;
    function GetAbsoluteGroupTop(AGroupIndex: Integer;
      AWidth: Integer): Integer;
    function GetControlBounds: TRect; virtual;
    function GetGalleryHeight(AWidth: Integer): Integer; virtual;
    function GetGalleryMargins: TRect; virtual; abstract;
    function GetGroupItemCount(ALastGroupIndex: Integer): Integer;
    function GetHeight(AWidth: Integer): Integer; virtual;
    function GetLayoutWidth(AColumnCount: Integer; out AGroupItemWidthIsNull: Boolean): Integer; virtual; abstract;
    function GetMaxGroupItemSize: TSize; virtual;
    function GetGroupItem(X, Y: Integer): TdxRibbonGalleryGroupItem;
    function GetGroupItemStoredSize(AGroupIndex: Integer): TSize;
    function GetGroupItemViewInfo(AGroupItem: TdxRibbonGalleryGroupItem): TdxRibbonGalleryGroupItemViewInfo;
    function GetLeftLayoutIndent: Integer; virtual;
    function GetMinSize: TSize; virtual; abstract;
    function GetNextButtonEnabled: Boolean;
    function GetPreviousButtonEnabled: Boolean;
    function GetRightLayoutIndent: Integer; virtual;
    function GetVisibleGroupIndex(AStartGroupIndex: Integer; AIncreaseIndex: Boolean): Integer;
    function GetVisibleNotEmptyGroupIndex(AStartGroupIndex: Integer; AIncreaseIndex: Boolean): Integer;
    function InternalGetScrollBarWidth: Integer; virtual; abstract;
    function IsGroupHeaderVisible: Boolean; virtual;
    function IsGroupItemAtThisPlace(X, Y: Integer): Boolean;
    function IsInRibbon: Boolean; virtual;

⌨️ 快捷键说明

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