cxpc.pas

来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 1,633 行 · 第 1/5 页

PAS
1,633
字号
    procedure InitializeLineBoundsA(var ALineIndexBoundsA: TcxPCLineIndexBoundsArray; AFirstIndex, ALastIndex: Integer);
    function InternalGetClientRect: TRect;
    function InternalGetShiftState: TShiftState;
    procedure InternalInvalidateRect(Rect: TRect);
    function IsTooSmallControlSize: Boolean;
    function PassDesignMouseEvent(X, Y: Integer): Boolean;
    procedure PlaceVisibleTabsOnRows(ATabsWidth, ATabsDistance: Integer);
    procedure PrepareImagesBitmapBackground(ABitmap: TBitmap);
    procedure RearrangeRows;
    procedure ReadClientRectBottom(Reader: TReader);
    procedure ReadClientRectLeft(Reader: TReader);
    procedure ReadClientRectRight(Reader: TReader);
    procedure ReadClientRectTop(Reader: TReader);
    procedure RepaintTab(TabVisibleIndex: Integer; TabPropertyChanged: TcxPCTabPropertyChanged);
    procedure SelectTab(ATabVisibleIndex: Integer; AAddToSelected: Boolean);
    procedure SetHideTabs(const Value: Boolean);
    procedure SetHotTrack(Value: Boolean);
    procedure SetImageBorder(const Value: Integer);
    procedure SetImages(const Value: TCustomImageList);
    procedure SetIsTabsContainer(Value: Boolean);
    procedure SetMaxRotatedTabWidth(Value: Integer);
    procedure SetMultiLine(const Value: Boolean);
    procedure SetMultiSelect(const Value: Boolean);
    procedure SetNavigatorPosition(const Value: TcxPCNavigatorPosition);
    procedure SetOptions(Value: TcxPCOptions);
    procedure SetOwnerDraw(const Value: Boolean);
    procedure SetRaggedRight(const Value: Boolean);
    procedure SetRotate(const Value: Boolean);
    procedure SetScrollOpposite(const Value: Boolean);
    procedure SetShowFrame(const Value: Boolean);
    procedure SetStyle(const Value: TcxPCStyleID);
    procedure SetTabCaptionAlignment(Value: TAlignment);
    procedure SetTabHeight(const Value: Smallint);
    procedure SetTabIndex(Value: Integer);
    procedure SetTabPosition(const Value: TcxTabPosition);
    procedure SetTabs(const Value: TcxTabs);
    procedure SetTabSlants(Value: TcxTabSlants);
    procedure SetTabsTab(TabIndex: Integer; const Value: TcxTab);
    procedure SetTabWidth(const Value: Smallint);
    procedure SynchronizeHotTrackStates(Shift: TShiftState);
    procedure SynchronizeNavigatorButtons;
    procedure SynchronizeTabImagesRotationAngle;
    procedure TabSlantsChanged(Sender: TObject);
    procedure TimerEventHandler(Sender: TObject);
    procedure UpdateButtonsState;
    procedure UpdateTabPosition(ANavigatorButtons: TcxPCNavigatorButtons);
    procedure WriteClientRectBottom(Writer: TWriter);
    procedure WriteClientRectLeft(Writer: TWriter);
    procedure WriteClientRectRight(Writer: TWriter);
    procedure WriteClientRectTop(Writer: TWriter);
    procedure WMGetDlgCode(var Message: TWMGetDlgCode); message WM_GETDLGCODE;
    procedure WMPrintClient(var Message: TWMPrintClient); message WM_PRINTCLIENT;
    procedure CMDesignHitTest(var Message: TCMDesignHitTest); message CM_DESIGNHITTEST;
    procedure CMDialogChar(var Message: TCMDialogChar); message CM_DIALOGCHAR;
    procedure CMDialogKey(var Message: TCMDialogKey); message CM_DIALOGKEY;
    procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;
    procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
    procedure CMParentColorChanged(var Message: TMessage); message CM_PARENTCOLORCHANGED;
  protected
    procedure AdjustClientRect(var Rect: TRect); override;
    procedure ChangeScale(M, D: Integer); override;
    procedure CreateHandle; override;
    procedure CreateParams(var Params: TCreateParams); override;
    procedure DefineProperties(Filer: TFiler); override;
    function DoMouseWheelDown(Shift: TShiftState;  MousePos:
      TPoint): Boolean; override;
    function DoMouseWheelUp(Shift: TShiftState;  MousePos:
      TPoint): Boolean; override;
    procedure FocusChanged; override;
    procedure FontChanged; override;
    procedure KeyDown(var Key: Word; Shift: TShiftState); override;
    procedure Loaded; override;
    procedure LookAndFeelChanged(Sender: TcxLookAndFeel;
      AChangedValues: TcxLookAndFeelValues); override;
    procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
      X, Y: Integer); override;
    procedure MouseLeave(AControl: TControl); override;
    procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
    procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
      X, Y: Integer); override;
    function NeedsScrollBars: Boolean; override;
    procedure Paint; override;
    procedure Resize; override;

    procedure AfterPaintTab(ACanvas: TcxCanvas; ATab: TcxTab;
      AImageAndTextData: TcxPCOutTabImageAndTextData); virtual;
    function DoCanClose: Boolean; virtual;
    procedure DoClose; virtual;
    function HandleDialogChar(Key: Integer): Boolean; virtual;
    function HasBackground: Boolean; override;
    function CanChange(NewTabIndex: Integer): Boolean; dynamic;
    function CanShowTab(TabIndex: Integer): Boolean; virtual;
    procedure Change; dynamic;
    procedure CorrectFirstVisibleTab(TabVisibleIndex: Integer);
    procedure DoShowGoDialog; virtual;
    procedure DrawTab(TabIndex: Integer; const Rect: TRect; Active: Boolean); virtual;
    function GetActivePage: TcxTabSheet; virtual;
    function GetImageIndex(ATabIndex: Integer): Integer; virtual;
    function GetPage(ATabIndex: Integer): TcxTabSheet; virtual;
    procedure GoDialogClickEventHandler(ATabControlItemIndex: Integer); virtual;
    procedure HideGoDialog(ATabControlItemIndex: Integer);
    procedure ImageListChange(Sender: TObject); virtual;
    function InternalKeyDown(var Key: Word; Shift: TShiftState): Boolean; virtual;
    function IsChangeEventLocked: Boolean;
    procedure LockChangeEvent(ALock: Boolean);
    class procedure OutError(SourceMethodName: TCaption; Msg: TCaption);
    procedure PrepareTabCanvasFont(ATab: TcxTab; ACanvas: TcxCanvas); virtual;
    procedure RequestLayout; dynamic;
    procedure SetDefaultStyle;
    procedure SetModified;
    procedure ShowGoDialog;
    function TabIndexTabMustBeVisible: Boolean; virtual;
    procedure UpdateTabImages;

    property DisplayRect: TRect read GetDisplayRect;
    property FirstVisibleTab: Integer read FFirstVisibleTab write FFirstVisibleTab;
    property Focusable: Boolean read FFocusable write FFocusable default True;
    property HideTabs: Boolean read FHideTabs write SetHideTabs default False;
    property HotTrack: Boolean read FHotTrack write SetHotTrack default False;
    property ImageBorder: Integer read FImageBorder write SetImageBorder default 0;
    property Images: TCustomImageList read GetImages write SetImages;
    property IsTabsContainer: Boolean read FIsTabsContainer
      write SetIsTabsContainer default False;
    property MainTabIndex: Integer read GetMainTabIndex;
    property MaxRotatedTabWidth: Integer read GetMaxRotatedTabWidth
      write SetMaxRotatedTabWidth default 0;
    property MultiLine: Boolean read FMultiLine write SetMultiLine default False;
    property MultiSelect: Boolean read FMultiSelect write SetMultiSelect default False;
    property NavigatorPosition: TcxPCNavigatorPosition read FNavigatorPosition
      write SetNavigatorPosition default npRightTop;
    property Options: TcxPCOptions read GetOptions write SetOptions
      default cxPCDefaultOptions;
    property OwnerDraw: Boolean read FOwnerDraw write SetOwnerDraw default False;
    property RaggedRight: Boolean read FRaggedRight write SetRaggedRight default False;
    property Rotate: Boolean read FRotate write SetRotate default False;
    property ScrollOpposite: Boolean read FScrollOpposite
      write SetScrollOpposite default False;
    property ShowFrame: Boolean read FShowFrame write SetShowFrame default False;
    property Style: TcxPCStyleID read GetStyle write SetStyle default cxPCDefaultStyle;
    property TabCaptionAlignment: TAlignment read FTabCaptionAlignment
      write SetTabCaptionAlignment default taCenter;
    property TabHeight: Smallint read FTabSize.Y write SetTabHeight default 0;
    property TabIndex: Integer read FTabIndex write SetTabIndex default -1;
    property TabPosition: TcxTabPosition read FTabPosition write SetTabPosition
      default tpTop;
    property TabSlants: TcxTabSlants read FTabSlants write SetTabSlants;
    property TabsTabs[TabIndex: Integer]: TcxTab read GetTabsTab write SetTabsTab;
    property TabWidth: Smallint read FTabSize.X write SetTabWidth default 0;
    property VisibleTabList: TcxVisibleTabList read FVisibleTabList;
    property OnCanClose: TcxPCCanCloseEvent read FOnCanClose write FOnCanClose;
    property OnChange: TNotifyEvent read FOnChange write FOnChange;
    property OnChanging: TcxTabChangingEvent read FOnChanging write FOnChanging;
    property OnDrawTab: TcxDrawTabEvent read FOnDrawTab write FOnDrawTab;
    property OnDrawTabEx: TcxDrawTabExEvent read FOnDrawTabEx write FOnDrawTabEx;
    property OnGetImageIndex: TcxGetTabImageEvent read FOnGetImageIndex write FOnGetImageIndex;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    function CanFocus: Boolean; override;
    function GetOptimalSize: Integer;
    procedure GetTabOrderList(List: TList); override;
    function IndexOfTabAt(X, Y: Integer): Integer;
    procedure ScrollTabs(Delta: Integer);
    procedure SetStandardStyle(StandardStyle: TcxPCStandardStyle);
    procedure SetStyleByStyleName(StyleName: TCaption);
    property LookAndFeel;
    property Painter: TcxPCCustomPainter read FPainter;
    property ParentBackground;
    property RowCount: Integer read FRowCount;
    property Tabs: TcxTabs read FTabs write SetTabs;
    property TabStop default True;
    property TopOrLeftPartRowCount: Integer read FTopOrLeftPartRowCount;
  end;

  { TcxPageControl }

  TcxPageControl = class(TcxCustomTabControl)
  private
    FActivePage: TcxTabSheet;
    FActivePageSetting: Boolean;
    FNewDockSheet: TcxTabSheet;
    FPageInserting: Boolean;
    FPages: TList;
    FUndockingPage: TcxTabSheet;
    FOnPageChanging: TcxPageChangingEvent;
    procedure ChangeActivePage(APage: TcxTabSheet);
    function GetActivePageIndex: Integer;
    function GetDockClientFromPoint(P: TPoint): TControl;
    function GetPageCount: Integer;
    function GetTabCount: Integer;
    procedure InsertPage(APage: TcxTabSheet);
    procedure RemovePage(APage: TcxTabSheet);
    procedure SetActivePage(APage: TcxTabSheet);
    procedure SetActivePageIndex(Value: Integer);
    procedure WMLButtonDown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN;
    procedure WMLButtonDblClk(var Message: TWMLButtonDblClk); message WM_LBUTTONDBLCLK;
    procedure CMDockNotification(var Message: TCMDockNotification); message CM_DOCKNOTIFICATION;
    procedure CMControlChange(var Message: TCMControlChange); message CM_CONTROLCHANGE;
    procedure CMUnDockClient(var Message: TCMUnDockClient); message CM_UNDOCKCLIENT;
  protected
    procedure AlignControls(AControl: TControl; var Rect: TRect); override;
    function CanChange(NewTabIndex: Integer): Boolean; override;
    function CanFocusOnClick: Boolean; override;
    procedure Change; override;
    procedure DoAddDockClient(Client: TControl; const ARect: TRect); override;
    function DockClient(DockSource: TDragDockObject;
      MousePos: TPoint): Integer; virtual;
    procedure DoClose; override;
    procedure DockOver(Source: TDragDockObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean); override;
    procedure DoRemoveDockClient(Client: TControl); override;
    function GetActivePage: TcxTabSheet; override;
    function GetPage(ATabIndex: Integer): TcxTabSheet; override;
    procedure GetSiteInfo(Client: TControl; var InfluenceRect: TRect;
      MousePos: TPoint; var CanDock: Boolean); override;
    procedure ImageListChange(Sender: TObject); override;
    procedure Loaded; override;
    procedure RequestLayout; override;
    procedure SetChildOrder(Child: TComponent; Order: Integer); override;
    procedure ShowControl(AControl: TControl); override;
    function TabIndexTabMustBeVisible: Boolean; override;
    function UndockClient(NewTarget, Client: TControl): Boolean;
      virtual;
    function DoUnDock(NewTarget: TWinControl; Client: TControl): Boolean; override;
    procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
    function CanChangeActivePage(NewPage: TcxTabSheet): Boolean; dynamic;
    procedure ControlChange(Inserting: Boolean; Child: TControl); virtual;
    function GetPageFromDockClient(Client: TControl): TcxTabSheet;
    procedure PageChange; dynamic;
    procedure PageChanging(NewPage: TcxTabSheet; var AllowChange: Boolean);
    procedure UpdateActivePage; virtual;
    procedure UpdateTab(APage: TcxTabSheet);
    procedure UpdateTabs;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    function FindNextPage(ACurrentPage: TcxTabSheet;
      AGoForward, ACheckTabAccessibility: Boolean): TcxTabSheet;
    function FindNextPageEx(ACurrentPage: TcxTabSheet;
      AGoForward, ACheckTabAccessibility, ACircular: Boolean): TcxTabSheet;
    procedure DockDrop(Source: TDragDockObject; X, Y: Integer); override;
    procedure SelectNextPage(GoForward: Boolean; CheckTabVisible: Boolean = True);
    property ActivePageIndex: Integer read GetActivePageIndex
      write SetActivePageIndex;
    property PageCount: Integer read GetPageCount;
    property Pages[Index: Integer]: TcxTabSheet read GetPage;
    property TabCount: Integer read GetTabCount;
  published
    property ActivePage: TcxTabSheet read FActivePage write SetActivePage;
    property Align;
    property Anchors;
    property BiDiMode;
    property Color;
    property Constraints;
    property DockSite;
    property DragCursor;
    property DragKind;
    property DragMode;
    property Enabled;
    property Focusable;
    property Font;
    property HideTabs;
    property HotTrack;
    property ImageBorder;
    property Images;
    property LookAndFeel;
    property MaxRotatedTabWidth;
    property MultiLine;
    property NavigatorPosition;
    property Options;
    property OwnerDraw;
    property ParentBackground;
    property ParentBiDiMode;
    property ParentColor;
    property ParentFont;
    property ParentShowHint;
    property PopupMenu;
    property RaggedRight;
    property Rotate;
    property ScrollOpposite;
    property ShowFrame;
    property ShowHint;
    property Style;
    property TabHeight;
    property TabOrder;
    property TabPosition;
    property TabSlants;
    property TabWidth;
    property Visible;
    property OnCanClose;
    property OnChange;
    property OnClick;
    property OnContextPopup;
    property OnDblClick;
    property OnDockDrop;
    property OnDockOver;
    property OnDragDrop;
    property OnDragOver;
    property OnDrawTab;
    property OnDrawTabEx;
    property OnEndDock;
    property OnEndDrag;
    property OnEnter;
    property OnExit;
    property OnGetImageIndex;
    property OnGetSiteInfo;
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
    property OnPageChanging: TcxPageChangingEvent read FOnPageChanging
      write FOnPageChanging;
    property OnResize;
    property OnStartDock;
    property OnStartDrag;
    property OnUnDock;
  end;

  TcxTabSheet = class(TCustomControl)
  private
    FHighlighted: Boolean;
    FImageIndex: TImageIndex;
    FPageControl: TcxPageControl;
    FTab: TcxTab;
    FTabShowing: Boolean;
    FTabVisible: Boolean;
    FOnHide: TNotifyEvent;
    FOnShow: TNotifyEvent;

⌨️ 快捷键说明

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