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

📄 mxoutlookbarpro.pas

📁 医院信息系统 方法一: 1.运行SQL Server 2000的查询分析器
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    Procedure SetDisplayName( Const AValue: String ); Override;

    Procedure ActionChange( Sender: TObject; CheckDefaults: Boolean ); Virtual;
    Function GetActionLinkClass: TControlActionLinkClass; Virtual;

    Procedure DrawCaption( ACanvas: TCanvas; Pushed: Boolean; Underline: Boolean ); Virtual;
    Procedure DrawCheckStyle( ACanvas: TCanvas ); Virtual;
    Procedure DrawFocusRect( ACanvas: TCanvas; Var ARect: TRect; AButtonState: TmxButtonState ); Virtual;
    Procedure DrawXPFocusRect( ACanvas: TCanvas; Var ARect: TRect; AButtonState: TmxButtonState ); Virtual;
    Procedure DrawImageRect( ACanvas: TCanvas; Var ARect: TRect; Pushed: Boolean ); Virtual;
    Procedure DrawXPImageRect( ACanvas: TCanvas; Var ARect: TRect; Pushed: Boolean ); Virtual;
    Procedure Draw( DrawBitmap: TBitmap; Var ARect: TRect; MaxBottom: Integer; Calcsize: Boolean ); Virtual;

    Procedure DoBeforeDrawButton( ACanvas: TCanvas; Var AButtonRect: TRect; Var AFocusRect: TRect; Var AImageRect: TRect; Var ALabelRect: TRect ); Virtual;
    Procedure DoDrawButton( ACanvas: TCanvas; AView: TmxButtonView; AState: TmxButtonState; AImageRect: TRect; ALabelRect: TRect ); Virtual;
    Procedure DoAfterDrawButton( ACanvas: TCanvas; AImageRect: TRect; ALabelRect: TRect ); Virtual;

  Public

    Property HitStatus: TmxHitPosition Read FDragDropHitStatus;
    Property IsFirstButton: Boolean Read IsTheFirstButton;
    Property IsLastButton: Boolean Read IsTheLastButton;
    Property HeaderIndex: Integer Read GetHeaderIndex;
    Property ButtonRect: TRect Read FButtonRect;
    Property LabelRect: TRect Read FLabelRect;

{$WARNINGS OFF}
    Property Data: Pointer Read FData Write SetData;
{$WARNINGS ON}

    Function UseRightToLeftReading: Boolean;
    Function DrawTextBiDiModeFlags( Flags: Longint ): Longint;
    Function UseRightToLeftAlignment: Boolean;
    Function DrawTextBiDiModeFlagsReadingOnly: Longint;

    Constructor Create( ACollection: TCollection ); Override;
    Destructor Destroy; Override;

    Procedure Assign( Source: TPersistent ); Override;
    Procedure AssignTo( Destination: TPersistent ); Override;

    Procedure Alert;
    Procedure StopAlert;

  Published

    Property Action: TBasicAction Read GetAction Write SetAction;
    Property AutoSize: Boolean Read FAutoSize Write SetAutoSize;
    Property Alignment: TAlignment Read FAlignment Write SetAlignment Default taCenter;
    Property AllowGrayed: Boolean Read FAllowGrayed Write FAllowGrayed;
    Property ButtonIndex: Integer Read GetButtonIndex Write SetButtonIndex;
    Property ButtonKind: TmxButtonKind Read FButtonKind Write SetButtonKind Default bkButton;
    Property ButtonStyle: TmxButtonStyle Read FButtonStyle Write SetButtonStyle;
    Property ButtonView: TmxButtonView Read FButtonView Write SetButtonView;
    Property BiDiMode: TBiDiMode Read FBiDiMode Write SetBiDiMode Stored IsBiDiModeStored;
    Property Checked: Boolean Read FChecked Write SetChecked;
    Property Caption: String Read FCaption Write SetCaption;
    Property Color: TColor Read FColor Write SetColor;
    Property Cursor: TCursor Read FCursor Write FCursor Default crDefault;
    Property CheckState: TCheckBoxState Read FCheckState Write SetCheckState;
    Property Enabled: Boolean Read FEnabled Write SetEnabled;
    Property Font: TFont Read FFont Write SetFont;
    Property HighlightFont: TFont Read FHighlightFont Write SetHighlightFont;
    Property HelpContext: THelpContext Read FHelpContext Write SetHelpContext;
    Property Height: Word Read FHeight Write SetHeight Default 20;
    Property Hint: String Read FHint Write SetHint;
    Property ImageIndex: TImageIndex Read FImageIndex Write SetImageIndex;
    Property Margin: Integer Read FMargin Write SetMargin Default 4;
    Property Name: String Read GetDisplayName Write SetDisplayName;
    Property PopupMenu: TPopupMenu Read FPopupMenu Write FPopupMenu;
    Property ShowAccelChar: Boolean Read FShowAccelChar Write SetShowAccelChar Default True;
    Property ParentBiDiMode: Boolean Read FParentBiDiMode Write SetParentBiDiMode Default True;
    Property Tag: Longint Read FTag Write FTag Default 0;
    Property Transparent: Boolean Read FTransparent Write SetTransparent;
    Property Options: TmxButtonOptions Read FOptions Write SetOptions;
    Property UserString: String Read FUserString Write FUserString;
    Property Visible: Boolean Read FVisible Write SetVisible;
    Property Width: Word Read FWidth Write SetWidth Default 20;
    Property WordWrap: Boolean Read FWordWrap Write SetWordWrap Default False;

    Property OnClick: TNotifyEvent Read FOnClick Write FOnClick;
    Property OnBeforeDrawButton: TmxEventBeforeDrawCommandButton Read FOnBeforeDrawButton Write FOnBeforeDrawButton;
    Property OnDrawButton: TmxEventDrawCommandButton Read FOnDrawButton Write FOnDrawButton;
    Property OnAfterDrawButton: TmxEventAfterDrawCommandButton Read FOnAfterDrawButton Write FOnAfterDrawButton;
  End;

// ************************************************************************
// ************************************************************************
// ************************************************************************

  TmxButtons = Class( TCollection )
  Private

    FOwner: TmxHeader;
    FOutlookBarPro: TmxOutlookBarPro;

    Function GetButtonItem( Index: Integer ): TmxButton;
    Procedure SetButtonItem( Index: Integer; AValue: TmxButton );

  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; AHeader: TmxHeader; ItemClass: TCollectionItemClass );

    Function Add: TmxButton;
    Property OutlookBarPro: TmxOutlookBarPro Read FOutlookBarPro;
    Property Header: TmxHeader Read FOwner;
    Property Buttons[ Index: Integer ]: TmxButton Read GetButtonItem Write SetButtonItem; Default;

  End;

// ************************************************************************
// ************************************************************************
// ************************************************************************

  TmxInplaceEdit = Class( TCustomEdit )
  Private

    FAlignment: TAlignment;
    FActivate: Boolean;
    FBorderColor: TColor;
    FFlat: Boolean;
    FShowBorder: Boolean;
    FMouseInHeader: boolean;
    FWordWrap: Boolean;

    Procedure WMNCPaint( Var Message: TMessage ); Message WM_NCPAINT;
    Procedure CMMouseEnter( Var Message: TMessage ); Message CM_MOUSEENTER;
    Procedure CMMouseLeave( Var Message: TMessage ); Message CM_MOUSELEAVE;
    Procedure WMSetFocus( Var Message: TWMSetFocus ); Message WM_SETFOCUS;
    Procedure WMKillFocus( Var Message: TWMKillFocus ); Message WM_KILLFOCUS;
    Procedure WMSize( Var Message: TWMSize ); Message WM_SIZE;

    Procedure DrawComponentBorder( AColor: TColor; ABorder: TColor; AStyle: TmxBorderStyle; ACanvas: TCanvas; ARect: TRect );

    Procedure SetFont( AValue: TFont );
    Function GetFont: TFont;
    Procedure SetBorderColor( AValue: TColor );
    Procedure SetFlat( AValue: Boolean );
    Procedure SetShowBorder( AValue: Boolean );
    Procedure SetWordWrap( AValue: Boolean );
    Procedure SetAlignment( AValue: TAlignment );

  Protected

    Procedure CreateParams( Var Params: TCreateParams ); Override;
    Procedure SetControlBorder;
    Procedure InvalidateControl;

  Public

    Constructor Create( AOwner: TComponent ); Override;

    Procedure Assign( Source: TPersistent ); Override;
    Procedure AssignTo( Destination: TPersistent ); Override;

  Published

    Property Alignment: TAlignment Read FAlignment Write SetAlignment Default taLeftJustify;
    Property Activate: Boolean Read FActivate Write FActivate;
    Property BorderColor: TColor Read FBorderColor Write SetBorderColor;
    Property Flat: Boolean Read FFlat Write SetFlat;
    Property ShowBorder: Boolean Read FShowBorder Write SetShowBorder;
    Property Font: TFont Read GetFont Write SetFont;
    Property WordWrap: Boolean Read FWordWrap Write SetWordWrap Default True;
    Property PopupMenu;
    Property OnContextPopup Stored False;

  End;

// ************************************************************************
// ************************************************************************
// ************************************************************************

  TmxInplaceEditor = Class( TPersistent )
  Private

    FHeaderEdit: Boolean;
    FEdit: TmxInplaceEdit;
    FEditingItem: TCollectionItem;
    FEditing: Boolean;
    FOnChange: TNotifyEvent;

    Procedure SetFont( AValue: TFont );
    Function GetFont: TFont;
    Function GetBorderColor: TColor;
    Procedure SetBorderColor( AValue: TColor );
    Function GetFlat: Boolean;
    Procedure SetFlat( AValue: Boolean );
    Procedure SetShowBorder( AValue: Boolean );
    Function GetShowBorder: Boolean;
    Procedure SetWordWrap( AValue: Boolean );
    Function GetWordWrap: Boolean;
    Procedure SetAlignment( AValue: TAlignment );
    Function GetAlignment: TAlignment;

    Procedure SetPopup( AValue: TPopupMenu );
    Function GetPopup: TPopupMenu;
    Procedure SetOnContextPopup( AValue: TContextPopupEvent );
    Function GetOnContextPopup: TContextPopupEvent;

    Procedure DoEndEdit( ACancel: Boolean );
    Procedure OnEditExit( Sender: TObject );
    Procedure DoEditKeyDown( Sender: TObject; Var Key: Word; Shift: TShiftState );

  Protected

    Procedure Change; Dynamic;
    Procedure DoProcessEditResults( ACancel: Boolean ); Virtual;

  Public

    Property Editing: Boolean Read FEditing;

    Constructor Create( AOwner: TmxOutlookBarPro ); Virtual;

    Procedure EditHeader( AHeader: TmxHeader );
    Procedure EditButton( AButton: TmxButton );

    Procedure Assign( Source: TPersistent ); Override;
    Procedure AssignTo( Destination: TPersistent ); Override;

  Published

    Property Alignment: TAlignment Read GetAlignment Write SetAlignment;
    Property BorderColor: TColor Read GetBorderColor Write SetBorderColor;
    Property Flat: Boolean Read GetFlat Write SetFlat;
    Property ShowBorder: Boolean Read GetShowBorder Write SetShowBorder;
    Property Font: TFont Read GetFont Write SetFont;
    Property WordWrap: Boolean Read GetWordWrap Write SetWordWrap;

    Property PopupMenu: TPopupMenu Read GetPopup Write SetPopup;
    Property OnContextPopup: TContextPopupEvent Read GetOnContextPopup Write SetOnContextPopup;

    Property OnChange: TNotifyEvent Read FOnChange Write FOnChange;

  End;

// ************************************************************************
// ************************************************************************
// ************************************************************************

  TmxOutlookBarPro = Class( TCustomControl )
  Private

    FAcceptedObject: Boolean;
    FLoaded: Boolean;
    FStopAlerting: Boolean;
    FAlertColor: TColor;
    FAlertedButton: TmxButton;
    FDropMarkColor: TColor;
    FLastDropMode: TmxDropMode;
    FDraggedButton: TmxButton;
    FDragThreshold: Integer;
    FDragStartPos: TPoint;
    FDragManager: TmxDragDropManager;
    FDragStates: TmxOutlookBarStates;
    FLastVCLDragTarget: TmxButton;
    FCurrentTargetButton: TmxButton;
    FCurrentTargetHeader: TmxHeader;
    FAutoScrollDelay: Cardinal;
    FAutoButtonScrollDelay: Cardinal;
    FAutoChangeDelay: Cardinal;
    FAlertInterval: Cardinal;

    FOnDragAllowed: TmxEventDragAllowed;
    FOnDragOver: TmxEventDragOver;
    FOnDragEnter: TmxEventDragEnter;
    FOnDragDrop: TmxEventDragDrop;

    FEachHeaderSelection: Boolean;
    FOffset: Integer;
    FScrollDown: Boolean;
    FScrollUpRect: TRect;
    FScrollUpState: TmxButtonState;
    FScrollDownRect: TRect;
    FScrollDownState: TmxButtonState;
    FButtonScrollUpRect: TRect;
    FButtonScrollUpState: TmxButtonState;
    FButtonScrollDownRect: TRect;
    FButtonScrollDownState: TmxButtonState;

    FSavedHeaderIndex: Integer;
    FActiveHeader: TmxHeader;
    FBackground: TmxBackground;
    FBevelInner: TPanelBevel;
    FBevelOuter: TPanelBevel;
    FBevelWidth: TBevelWidth;
    FBorder: TmxBorder;
    FBorderStyle: TBorderStyle;
    FCommonStyle: Boolean;
    FCloseButton: TmxCloseButton;
    FExplorerMethod: TmxExplorerMethod;
    FFlat: Boolean;
    FHeaders: TmxHeaders;
    FHeaderImages: TmxHeaderImages;
    FMouseInHeader: TmxHeader;
    FMouseInHeaderBody: TmxHeader;
    FMouseInButton: TmxButton;
    FProcessing: Boolean;
    FPainting: Boolean;
    FReCalcHeaderPositions: Boolean;
    FHeaderScrollType: TmxHeaderScrollType;
    FHeaderScrollValue: Byte;
    FHeaderScrollAcceleration: Byte;
    FSequence: Longint;
    FSettings: TmxBarSettings;
    FScrollChange: Word;
    FOptions: TmxBarOptions;
    FUpdating: Boolean;
    FUpdateCounter: Integer;
    FUpdatedHeaderIndex: Integer;
    FVersion: Integer;
    FViewStyle: TmxViewStyle;
    FEditor: TmxInplaceEditor;
    FReadyToPaint: Boolean;
    FScrollView: TmxScrollView;
    FScrollBoxSize: Word;
    FPreSet: TmxPreSet;

    FOnContextPopup: TContextPopupEvent;
    FOnEditorContextPopup: TContextPopupEvent;
    FOnChange: TmxEventHeaderChange;
    FOnCanChange: TmxEventCanChangeHeader;
    FOnChangeViewStyle: TmxEventChangeViewStyle;
    FOnDrawHeaderButtons: TmxEventDrawHeaderButtons;
    FOnAfterDrawHeaderButtons: TmxEventDrawHeaderButtons;
    FOnHide: TNotifyEvent;
    FOnShow: TNotifyEvent;
    FOnDrawCloseButton: TmxEventDrawButton;
    FOnAfterChangeStyle: TmxEventAfterChangeStyle;

    Procedure WMTimer( Var Message: TWMTimer ); Message WM_TIMER;
    Procedure WMLButtonDown( Var Message: TWMLButtonDown ); Message WM_LBUTTONDOWN;
    Procedure WMLButtonUp( Var Message: TWMLButtonUp ); Message WM_LBUTTONUP;
    Procedure WMNCDestroy( Var Message: TWMNCDestroy ); Message WM_NCDESTROY;
    Procedure WMSize( Var Message: TWMSize ); Message WM_SIZE;
    Procedure CMDesignHitTest( Var Msg: TCMDesignHitTest ); Message CM_DESIGNHITTEST;
    Procedure WMSetFocus( Var Message: TWMSetFocus ); Message WM_SETFOCUS;
    Procedure WMKillFocus( Var Message: TWMSetFocus ); Message WM_KILLFOCUS;
    Procedure CMBorderChanged( Var Message: TMessage ); Message CM_BORDERCHANGED;
    Procedure CMCtl3DChanged( Var Message: TMessage ); Message CM_CTL3DCHANGED;
    Procedure CMSysColorChange( Var Message: TMessage ); Messag

⌨️ 快捷键说明

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