📄 mxoutlookbarpro.pas
字号:
Procedure SetChangeParameter( AValue: TNotifyEvent );
Procedure SetVisible( AValue: Boolean );
Procedure SetTransparent( AValue: Boolean );
Procedure SetHeaderOptions( AValue: TmxHeaderOptions );
Procedure SetImageIndex( AValue: TImageIndex );
Procedure SetMargin( AValue: Word );
Procedure SetSpacing( AValue: Word );
Procedure SetBiDiMode( AValue: TBiDiMode ); Virtual;
Function UseRightToLeftAlignment: Boolean; Dynamic;
Function UseRightToLeftReading: Boolean;
Function DrawTextBiDiModeFlagsReadingOnly: Longint;
Procedure SetHeaderImage;
Function GetHeaderImageList: TCustomImageList;
{$WARNINGS OFF}
Procedure SetData( AValue: Pointer );
{$WARNINGS ON}
Function GetBodyRect: TRect;
Procedure ChangeParameter;
Procedure SetHeaderState( AValue: TmxHeaderState );
Function GetParentBar: TmxOutlookBarPro;
Function GetEnabled: Boolean;
Function GetOpened: Boolean;
Procedure SetOpened( AValue: Boolean );
Procedure SetButtons( AValue: TmxButtons );
Function GetButtons: TmxButtons;
Function GetButton( Index: Integer ): TmxButton;
Function GetButtonCount: Integer;
Function GetVisibleButtonCount: Integer;
Function GetEnabledButtonCount: Integer;
Procedure SetFirstButtonTop( AValue: Word );
Procedure SetAllowSelected( AValue: Boolean );
Procedure SetSelectedIndex( AValue: Integer );
Procedure DoButtonScrollUp;
Procedure DoButtonScrollDown;
Function IsUpButtonNeed: Boolean;
Function IsDownButtonNeed: Boolean;
Function GetFirstVisibleButton: TmxButton;
Function GetLastVisibleButton: TmxButton;
Function HasAlertedButton: Boolean;
Procedure SetState( AState: TmxButtonState );
Procedure SetRadioButton( AButton: TmxButton );
Protected
Function GetDisplayName: String; Override;
Procedure SetDisplayName( Const AValue: String ); Override;
Procedure Change; Dynamic;
Function DrawTextBiDiModeFlags( Flags: Longint ): Longint;
Function GetSettings: TmxBarSettings;
Function GetHeight: Integer;
Function GetExplorerAddon: Integer;
Procedure CalcHeaderLayout( Canvas: TCanvas; Client: TRect; Const Offset: TPoint; Const Caption: String; Alignment: TAlignment; Layout: TmxGlyphLayout; Margin, Spacing: Word; Var GlyphPos: TPoint; Var TextBounds, StatusRect: TRect; BiDiFlags: Longint ); Virtual;
Procedure DrawHeaderGlyph( Canvas: TCanvas; Const GlyphPos: TPoint; State: TmxButtonState; Transparent: Boolean ); Virtual;
Procedure DrawHeaderText( Canvas: TCanvas; Const Caption: String; TextBounds: TRect; State: TmxButtonState; BiDiFlags: Longint ); Virtual;
Function DrawHeaderFace( Canvas: TCanvas; Const Client: TRect; Const Offset: TPoint; Const Caption: String; Alignment: TAlignment; Layout: TmxGlyphLayout; Margin, Spacing: Word; State: TmxButtonState; Transparent: Boolean; BiDiFlags: LongInt ): TRect; Virtual;
Procedure DrawStatusButton( Canvas: TCanvas; Const Client: TRect );
Procedure DrawHeaderButtons( DrawBitmap: TBitmap; Const ARect: TRect ); Virtual;
Procedure DoAfterDrawHeaderBody( ACanvas: TCanvas; ARect: TRect ); Virtual;
Procedure DoAfterDrawHeaderButton( ACanvas: TCanvas; ARect: TRect ); Virtual;
Function CalculateBodyHeight( ARect: TRect ): Integer; Virtual;
Public
Property IsEnabled: Boolean Read GetEnabled; // *** Checks it from the parent ***
Property ButtonRect: TRect Read FButtonRect;
Property BodyRect: TRect Read GetBodyRect;
{$WARNINGS OFF}
Property Data: Pointer Read FData Write SetData;
{$WARNINGS ON}
Property ParentBar: TmxOutlookBarPro Read GetParentBar;
Property ButtonCount: Integer Read GetButtonCount;
Property VisibleHeaderCount: Integer Read GetVisibleButtonCount;
Property EnabledHeaderCount: Integer Read GetEnabledButtonCount;
Function CreateButton: Longint;
Function AddButton: TmxButton;
Procedure RemoveButton( AButton: TmxButton );
Procedure DeleteButton( AButtonIndex: Integer );
Procedure ClearButtons;
Property Button[ Index: Integer ]: TmxButton Read GetButton;
Function ButtonByIndex( Index: Integer ): TmxButton;
Function ButtonByName( Name: String ): TmxButton;
Function ButtonIndexByName( Name: String ): Integer;
Constructor Create( ACollection: TCollection ); Override;
Destructor Destroy; Override;
Procedure BeginUpdate; Virtual;
Procedure EndUpdate; Virtual;
Procedure Assign( Source: TPersistent ); Override;
Procedure AssignTo( Destination: TPersistent ); Override;
Procedure DrawHeaderButton( DrawBitmap: TBitmap; Var ARect: TRect; ActiveIndex: Integer );
Procedure DrawHeaderBody( DrawBitmap: TBitmap; Var ARect: TRect; ActiveIndex, ScrollOffset: Integer );
Procedure RenameButton( AButton: TmxButton );
Procedure RenameButtonByIndex( AButtonIndex: Integer );
Published
Property AllowSelected: Boolean Read FAllowSelected Write SetAllowSelected Default False;
Property Background: TmxBackground Read FBackground Write FBackground;
Property Glyph: TmxGlyph Read FGlyph Write FGlyph;
Property Images: TmxButtonImages Read FButtonImages Write FButtonImages;
Property Buttons: TmxButtons Read GetButtons Write SetButtons;
Property BiDiMode: TBiDiMode Read FBiDiMode Write SetBiDiMode;
Property Caption: String Read FCaption Write SetCaption;
Property Enabled: Boolean Read FEnabled Write SetEnabled Default True;
Property FirstButtonTop: Word Read FFirstButtonTop Write SetFirstButtonTop;
Property HeaderIndex: Integer Read GetHeaderIndex Write SetHeaderIndex Default -1;
Property HeaderState: TmxHeaderState Read FHeaderState Write SetHeaderState Default hsOpened;
Property Settings: TmxBarSettings Read FSettings Write FSettings;
Property ImageIndex: TImageIndex Read FImageIndex Write SetImageIndex Default -1;
Property Margin: Word Read FMargin Write SetMargin Default 4;
Property Name: String Read GetDisplayName Write SetDisplayName;
Property Options: TmxHeaderOptions Read FHeaderOptions Write SetHeaderOptions;
Property Opened: Boolean Read GetOpened Write SetOpened;
Property PopupMenu: TPopupMenu Read FPopupMenu Write FPopupMenu;
Property Tag: Longint Read FTag Write FTag Default 0;
Property Transparent: Boolean Read FTransparent Write SetTransparent Default False;
Property SelectedIndex: Integer Read FSelectedIndex Write SetSelectedIndex Default -1;
Property Spacing: Word Read FSpacing Write SetSpacing Default 2;
Property Visible: Boolean Read FVisible Write SetVisible Default True;
Property OnChange: TNotifyEvent Read FOnChange Write FOnChange;
Property OnChangeParameter: TNotifyEvent Read FOnChangeParameter Write SetChangeParameter;
Property OnCheckScroll: TmxEventCheckScroll Read FOnCheckScroll Write FOnCheckScroll;
Property OnDrawHeaderButton: TmxEventDrawHeader Read FOnDrawHeaderButton Write FOnDrawHeaderButton;
Property OnDrawStatusButton: TmxEventDrawStatusButton Read FOnDrawStatusButton Write FOnDrawStatusButton;
Property OnDrawHeaderBody: TmxEventDrawHeader Read FOnDrawHeaderBody Write FOnDrawHeaderBody;
Property OnAfterDrawHeaderButton: TmxEventDrawHeader Read FOnAfterDrawHeaderButton Write FOnAfterDrawHeaderButton;
Property OnAfterDrawHeaderBody: TmxEventDrawHeader Read FOnAfterDrawHeaderBody Write FOnAfterDrawHeaderBody;
End;
// ************************************************************************
// ************************************************************************
// ************************************************************************
TmxHeaders = Class( TCollection )
Private
FOutlookBarPro: TmxOutlookBarPro;
Function GetHeaderItem( Index: Integer ): TmxHeader;
Procedure SetHeaderItem( Index: Integer; AValue: TmxHeader );
Protected
Function GetAttrCount: Integer; Override;
Function GetAttr( Index: Integer ): String; Override;
Function GetItemAttr( Index, ItemIndex: Integer ): String; Override;
Procedure SetItemName( Item: TCollectionItem ); Override;
Procedure Update( Item: TCollectionItem ); Override;
Function GetOwner: TPersistent; Override;
Public
Constructor Create( AOutlookBarPro: TmxOutlookBarPro; ItemClass: TCollectionItemClass );
Function Add: TmxHeader;
Property OutlookBarPro: TmxOutlookBarPro Read FOutlookBarPro;
Property Headers[ Index: Integer ]: TmxHeader Read GetHeaderItem Write SetHeaderItem; Default;
End;
// ************************************************************************
// ************************************************************************
// ************************************************************************
TmxCloseButton = Class( TPersistent )
Private
FCloseHeader: TmxHeader;
FCloseRect: TRect;
FCloseState: TmxButtonState;
FOnClose: TNotifyEvent;
Procedure SetVisible( AValue: Boolean );
Function GetVisible: Boolean;
Procedure SetTransparent( AValue: Boolean );
Function GetTransparent: Boolean;
Procedure SetCaption( AValue: String );
Function GetCaption: String;
Procedure SetFont( AValue: TFont );
Function GetFont: TFont;
Procedure SetHeight( AValue: Integer );
Function GetHeight: Integer;
Function GetMargin: Word;
Procedure SetMargin( AValue: Word );
Function GetImageIndex: Integer;
Procedure SetImageIndex( AValue: Integer );
Public
Property CloseRect: TRect Read FCloseRect;
Property CloseState: TmxButtonState Read FCloseState;
Property CloseHeader: TmxHeader Read FCloseHeader;
Constructor Create( AOwner: TmxOutlookBarPro ); Virtual;
Destructor Destroy; Override;
Procedure Assign( Source: TPersistent ); Override;
Procedure AssignTo( Destination: TPersistent ); Override;
Published
Property Caption: String Read GetCaption Write SetCaption;
Property Font: TFont Read GetFont Write SetFont;
Property Height: Integer Read GetHeight Write SetHeight;
Property ImageIndex: Integer Read GetImageIndex Write SetImageIndex;
Property Margin: Word Read GetMargin Write SetMargin;
Property Transparent: Boolean Read GetTransparent Write SetTransparent;
Property Visible: Boolean Read GetVisible Write SetVisible Default False;
Property OnClose: TNotifyEvent Read FOnClose Write FOnClose;
End;
// ************************************************************************
// ************************************************************************
// ************************************************************************
TmxButton = Class( TCollectionItem )
Private
FAllowGrayed: Boolean;
FPaintGrayed: Boolean;
FChecked: Boolean;
FMargin: Integer;
FButtonKind: TmxButtonKind;
FFlashing: Boolean;
FAlerted: Boolean;
FAutoSize: Boolean;
FAlignment: TAlignment;
FActionLink: TControlActionLink;
FButtonStyle: TmxButtonStyle;
FButtonView: TmxButtonView;
FButtonRect: TRect;
FCheckBoxRect: TRect;
FBiDiMode: TBiDiMode;
FImageRect: TRect;
FFocusRect: TRect;
FLabelRect: TRect;
FDragDropHitStatus: TmxHitPosition;
FCaption: String;
FCursor: TCursor;
FColor: TColor;
{$WARNINGS OFF}
FData: Pointer;
{$WARNINGS ON}
FEnabled: Boolean;
FFont: TFont;
FHighlightFont: TFont;
FHelpContext: THelpContext;
FHeight: Word;
FHint: String;
FImageList: TCustomImageList;
FImageIndex: TImageIndex;
FName: String;
FParentBiDiMode: Boolean;
FShowAccelChar: Boolean;
FTag: Longint;
FTransparent: Boolean;
FState: TmxButtonState;
FOptions: TmxButtonOptions;
FUserString: String;
FVisible: Boolean;
FWidth: Word;
FWordWrap: Boolean;
FPopupMenu: TPopupMenu;
FCheckState: TCheckBoxState;
FOnClick: TNotifyEvent;
FOnBeforeDrawButton: TmxEventBeforeDrawCommandButton;
FOnDrawButton: TmxEventDrawCommandButton;
FOnAfterDrawButton: TmxEventAfterDrawCommandButton;
FOnChangeParameter: TNotifyEvent;
Procedure SetChangeParameter( AValue: TNotifyEvent );
Property OnChangeParameter: TNotifyEvent Read FOnChangeParameter Write SetChangeParameter;
Procedure SetTransparent( AValue: Boolean );
Procedure SetHint( AValue: String );
Procedure SetHelpContext( AValue: THelpContext );
Procedure SetImageIndex( AValue: TImageIndex );
Procedure SetEnabled( AValue: Boolean );
Procedure SetVisible( AValue: Boolean );
{$WARNINGS OFF}
Procedure SetData( AValue: Pointer );
{$WARNINGS ON}
Function GetAction: TBasicAction;
Procedure SetAction( AValue: TBasicAction );
Procedure SetCaption( AValue: String );
Procedure DoActionChange( Sender: TObject );
Procedure ChangeParameter;
Function GetButtonIndex: Integer;
Procedure SetButtonIndex( AValue: Integer );
Procedure SetButtonStyle( AValue: TmxButtonStyle );
Procedure SetButtonView( AValue: TmxButtonView );
Procedure SetAutoSize( AValue: Boolean );
Procedure SetColor( AValue: TColor );
Procedure SetFont( AValue: TFont );
Procedure SetHighlightFont( AValue: TFont );
Procedure SetHeight( AValue: Word );
Procedure SetWidth( AValue: Word );
Procedure SetOptions( AValue: TmxButtonOptions );
Procedure SetWordWrap( AValue: Boolean );
Procedure SetAlignment( AValue: TAlignment );
Procedure SetBiDiMode( AValue: TBiDiMode ); Virtual;
Procedure SetShowAccelChar( AValue: Boolean );
Procedure SetParentBiDiMode( AValue: Boolean ); Virtual;
Procedure SetButtonKind( AValue: TmxButtonKind );
Procedure SetMargin( AValue: Integer );
Procedure SetCheckState( AValue: TCheckBoxState );
Procedure SetChecked( AValue: Boolean );
Function GetButtonImageList: TCustomImageList;
Function GetSettings: TmxBarSettings;
Function GetStyle: TmxButtonStyle;
Function GetView: TmxButtonView;
Procedure CalculateButtonRect( Var ButtonRect: TRect; Var ImageRect: TRect; Var FocusRect: TRect; Var LabelRect: TRect );
Function CalculateImagePositon( ButtonRect: TRect ): TRect;
Function CalculateSmallImagePositon( ButtonRect: TRect ): TRect;
Function GetFont( FocusEnabled: Boolean ): TFont;
Function IsBiDiModeStored: Boolean;
Procedure DoClick; Virtual;
Function GetHeaderIndex: Integer;
Function GetHeader: TmxHeader;
Function IsTheFirstButton: Boolean;
Function IsTheLastButton: Boolean;
Protected
Property ActionLink: TControlActionLink Read FActionLink Write FActionLink;
Function GetDisplayName: String; Override;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -