se_controls.pas
来自「小区水费管理系统源代码水费收费管理系统 水费收费管理系统」· PAS 代码 · 共 1,763 行 · 第 1/5 页
PAS
1,763 行
procedure SetHint (const Value: String); override;
procedure SetImageIndex (Value: Integer); override;
procedure SetShortCut (Value: TShortCut); override;
procedure SetVisible (Value: Boolean); override;
procedure SetOnExecute (Value: TNotifyEvent); override;
end;
TSeCustomItemActionLinkClass = class of TSeCustomItemActionLink;
TSeItemView = class;
TSeMDIItemKind = (mikNone, mikClose, mikRestore, mikMinimize, mikSysMenu);
{ TSeCustomItem }
TSeCustomItem = class(TComponent)
private
FCaption: String;
FChecked: Boolean;
FEnabled: Boolean;
FHelpContext: THelpContext;
FHint: String;
FImageIndex: Integer;
FImages: TCustomImageList;
FShortCut: TShortCut;
FVisible: Boolean;
FOnClick: TNotifyEvent;
FOnBeforeDropDown: TNotifyEvent;
FActionLink: TSeCustomItemActionLink;
FParent: TSeCustomItem;
FParentComponent: TComponent;
FItems: TList;
FOnInternalChange: TNotifyEvent;
FMDIItemKind: TSeMDIItemKind;
FActiveMDIForm: TComponent;
FFirst: boolean;
FOnlyFirst: boolean;
FOwnerForm: TWinControl;
FBiDiMode: TBiDiMode;
FIsToolbar: boolean;
FTray: boolean;
FScrolled: boolean;
FTopItem: integer;
FScrollCount: integer;
FDrawingDisabled: boolean;
FItemRect: TRect;
FPopupMenuOptions: TSePopupMenuOptions;
function GetAction: TBasicAction;
procedure SetAction (Value: TBasicAction);
procedure SetCaption (Value: String);
procedure SetChecked (Value: Boolean);
procedure SetEnabled (Value: Boolean);
procedure SetImageIndex (Value: Integer);
procedure SetImages (Value: TCustomImageList);
procedure SetVisible (Value: Boolean);
function GetItemCount: integer;
function GetItem(Index: Integer): TSeCustomItem;
function GetOwnerCustomForm: TComponent;
procedure DoActionChange(Sender: TObject);
function IsCaptionStored: Boolean;
function IsCheckedStored: Boolean;
function IsEnabledStored: Boolean;
function IsHelpContextStored: Boolean;
function IsHintStored: Boolean;
function IsImageIndexStored: Boolean;
function IsOnClickStored: Boolean;
function IsShortCutStored: Boolean;
function IsVisibleStored: Boolean;
procedure ActionChange(Sender: TObject; CheckDefaults: Boolean);
function GetImgList: TCustomImageList;
procedure SetActiveMDIForm(const Value: TComponent);
procedure SetFirst(const Value: boolean);
procedure SetOnlyFirst(const Value: boolean);
procedure SetOwnerForm(const Value: TWinControl);
function UseRightToLeftAlignment: Boolean;
function UseRightToLeftReading: Boolean;
procedure SetBiDiMode(const Value: TBiDiMode);
procedure SetIsToolbar(const Value: boolean);
procedure SetTray(const Value: boolean);
procedure SetScrollCount(const Value: integer);
procedure SetScrolled(const Value: boolean);
procedure SetTopItem(const Value: integer);
procedure SetDrawingDisabled(const Value: boolean);
procedure SetPopupMenuOptions(const Value: TSePopupMenuOptions);
protected
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure SetParentComponent(Value: TComponent); override;
function DrawTextBiDiModeFlags(Flags: Integer): Longint;
function DrawTextBiDiModeFlagsReadingOnly: Longint;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); virtual;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); virtual;
procedure DoClick; dynamic;
function CreatePopupWindowClass: TClass; virtual;
property ActionLink: TSeCustomItemActionLink read FActionLink write FActionLink;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Loaded; override;
function HasParent: Boolean; override;
procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
function GetParentComponent: TComponent; override;
function FindItem(Value: Integer; Kind: TFindItemKind): TSeCustomItem;
function FindItemByChar(C: Char): TSeCustomItem;
function IsShortCut(var Msg: TWMKey): boolean;
procedure Click; dynamic;
procedure Change; virtual;
procedure Popup(View: TSeItemView; X, Y: integer; Rect: TRect);
function GetGlyphSize: integer;
procedure CalcSize(Canvas: TCanvas; View: TSeItemView; var AWidth, AHeight: integer); virtual;
procedure DrawItem(Canvas: TCanvas; View: TSeItemView; Rect: TRect; Active, Hover: boolean); virtual;
procedure DrawScrollButton(Canvas: TCanvas; View: TSeItemView; Rect: TRect; Button: TSeMenuScrollButton; Active: boolean); virtual;
procedure Clear;
procedure Add(AItem: TSeCustomItem);
function ContainsItem(AItem: TSeCustomItem): Boolean;
procedure Delete(Index: Integer);
function IndexOf(AItem: TComponent): Integer;
procedure Insert(NewIndex: Integer; AItem: TSeCustomItem);
procedure Remove(Item: TSeCustomItem);
procedure InitiateAction; virtual;
{ MenuBar Animation }
property First: boolean read FFirst write SetFirst;
property OnlyFirst: boolean read FOnlyFirst write SetOnlyFirst;
{ PopupMenuOptions options }
property PopupMenuOptions: TSePopupMenuOptions read FPopupMenuOptions write SetPopupMenuOptions;
{ Intenal properies }
property ActiveMDIForm: TComponent read FActiveMDIForm write SetActiveMDIForm;
property DrawingDisabled: boolean read FDrawingDisabled write SetDrawingDisabled;
property ItemRect: TRect read FItemRect write FItemRect;
property IsToolbar: boolean read FIsToolbar write SetIsToolbar;
property MDIItemKind: TSeMDIItemKind read FMDIItemKind write FMDIItemKind;
property OwnerForm: TWinControl read FOwnerForm write SetOwnerForm;
property Tray: boolean read FTray write SetTray;
{ Properties }
property BiDiMode: TBiDiMode read FBiDiMode write SetBiDiMode;
property ImgList: TCustomImageList read GetImgList;
property Items[Index: Integer]: TSeCustomItem read GetItem; default;
{ Scroll}
property TopItem: integer read FTopItem write SetTopItem;
property OnInternalChange: TNotifyEvent read FOnInternalChange write FOnInternalChange stored false;
published
{ Properties }
property Action: TBasicAction read GetAction write SetAction;
property Count: Integer read GetItemCount;
property HelpContext: THelpContext read FHelpContext write FHelpContext stored IsHelpContextStored default 0;
property Hint: String read FHint write FHint stored IsHintStored;
property Parent: TSeCustomItem read FParent;
property ParentComponent: TComponent read FParentComponent write FParentComponent;
property Checked: Boolean read FChecked write SetChecked stored IsCheckedStored default False;
property Enabled: Boolean read FEnabled write SetEnabled stored IsEnabledStored default True;
property Caption: String read FCaption write SetCaption stored IsCaptionStored;
property ImageIndex: Integer read FImageIndex write SetImageIndex stored IsImageIndexStored default -1;
property Images: TCustomImageList read FImages write SetImages;
property Scrolled: boolean read FScrolled write SetScrolled;
property ScrollCount: integer read FScrollCount write SetScrollCount;
property ShortCut: TShortCut read FShortCut write FShortCut stored IsShortCutStored default 0;
property Visible: Boolean read FVisible write SetVisible stored IsVisibleStored default True;
property OnClick: TNotifyEvent read FOnClick write FOnClick stored IsOnClickStored;
property OnBeforeDropDown: TNotifyEvent read FOnBeforeDropDown write FOnBeforeDropDown;
end;
TSeCustomItemClass = class of TSeCustomItem;
{ TSeItemView class }
TSeViewOrientation = (voVertical, voHorizontal);
TSeItemView = class(TComponent)
private
FItems: TSeCustomItem;
FIsMenuBar: boolean;
FOrientation: TSeViewOrientation;
FParentComponent: TComponent;
FWindow: TWinControl;
FSelItem: TSeCustomItem;
FDropDown: boolean;
FLoop: boolean;
FParentView: TSeItemView;
FChildView: TSeItemView;
FCanvas: TCanvas;
FLeft: integer;
FTop: integer;
FWidth, FHeight: integer;
FScrollTimer: TTimer;
FPopupTimer: TTimer;
FActiveScrollButton: TSeMenuScrollButton;
procedure DoScrollTimer(Sender: TObject);
protected
procedure SetSize(ASize: TPoint); virtual;
procedure SetPosition(APosition: TPoint); virtual;
function CheckDropDown: Boolean;
procedure InvalidateView; virtual;
procedure InvalidateItem(AItem: TSeCustomItem); virtual;
procedure InvalidateScrollButton(Button: TSeMenuScrollButton); virtual;
function Popup: Boolean;
procedure SelectNext;
procedure SelectPrev;
procedure StartScroll;
procedure StopScroll;
property Loop: boolean read FLoop;
property SelItem: TSeCustomItem read FSelItem;
property ActiveScrollButton: TSeMenuScrollButton read FActiveScrollButton;
public
constructor CreateView(AOwner: TComponent; AIsMenuBar: boolean;
AOrientation: TSeViewOrientation);
destructor Destroy; override;
procedure InitiateAction; virtual;
procedure CalcSize;
function MessageLoop: Boolean;
procedure Paint(Canvas: TCanvas); virtual;
{ Mouse routines }
function GetItemRect(Item: TSeCustomItem): TRect;
function GetScrollButtonRect(Button: TSeMenuScrollButton): TRect;
procedure UpdateHover(P: TPoint);
{ Properties }
property Canvas: TCanvas read FCanvas write FCanvas;
property Items: TSeCustomItem read FItems write FItems;
property IsMenuBar: boolean read FIsMenuBar;
property ParentComponent: TComponent read FParentComponent write FParentComponent;
property ParentView: TSeItemView read FParentView write FParentView;
property Window: TWinControl read FWindow write FWindow;
property Left: integer read FLeft write FLeft;
property Top: integer read FTop write FTop;
end;
EKsItemError = class(Exception);
{ TSeItemContainer abstract items container }
TSeInsertItemProc = procedure(AParent: TComponent; AItem: TSeCustomItem) of object;
TSeGetItemClassProc = procedure(var AItemClass: TSeCustomItemClass) of object;
procedure RegisterContainerClass(const AClass: TClass; AInsertItemProc: TSeInsertItemProc;
AGetItemClassProc: TSeGetItemClassProc);
procedure UnregisterContainerClass(const AClass: TClass);
function GetItemClass(const AClass: TClass): TSeCustomItemClass;
var
MenuFont: TFont;
type
{ TSeMenuBarView }
TSeCustomMenuBar = class;
TSeMenuBarView = class(TSeItemView)
private
FMenuBar: TSeCustomMenuBar;
protected
procedure SetSize(ASize: TPoint); override;
procedure SetPosition(APosition: TPoint); override;
procedure InvalidateView; override;
procedure InvalidateItem(AItem: TSeCustomItem); override;
public
constructor CreateView(AOwner: TComponent; ACanvas: TCanvas);
end;
{ TSeCustomMenuBar class }
{ TSeCustomMenuBar is a menu bar and its accompanying drop-down menus for a form. }
TSeCustomMenuBar = class(TSeCustomControl)
private
FDisableUpdate: boolean;
FItems: TSeCustomItem;
FView: TSeMenuBarView;
FPopupMenuOptions: TSePopupMenuOptions;
FAutoSize: boolean;
{ MDI Child }
FActiveMDIForm: TComponent;
{ Updating }
FUpdating: integer;
FShowBevel: boolean;
procedure DoMDIItemClick(Sender: TObject);
procedure DoInternalChange(Sender: TObject);
{ messages }
procedure CMDialogChar(var Msg: TCMDialogChar); message CM_DIALOGCHAR;
procedure CMDialogKey(var Msg: TCMDialogKey); message CM_DIALOGKEY;
procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
procedure WMLButtonDown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN;
{ properties }
function GetImages: TCustomImageList;
procedure SetImages(Value: TCustomImageList);
procedure SetAutoSize(const Value: boolean);
procedure SetPopupMenuOptions(const Value: TSePopupMenuOptions);
procedure SetShowBevel(const Value: boolean);
protected
FCalcSize: boolean;
FSysMenu: TSeCustomItem;
FMin: TSeCustomItem;
FRestore: TSeCustomItem;
FClose: TSeCustomItem;
procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
procedure SetParent(AParent: TWinControl); override;
{ for next }
function GetViewRect: TRect; virtual;
{ overrides }
procedure PaintBuffer; override;
{ need for }
class procedure InsertItemProc(AParent: TComponent; AItem: TSeCustomItem); virtual;
class procedure GetItemClassProc(var AItemClass: TSeCustomItemClass); virtual;
procedure ItemsChanged; virtual;
procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
property View: TSeMenuBarView read FView;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Loaded; override;
procedure InitiateAction; override;
procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
procedure EnterLoop;
function IsShortCut(var Msg: TWMKey): boolean;
{ MDI }
procedure ShowMDIItems(AMDIForm: TComponent);
procedure HideMDIItems;
{ Updating }
procedure BeginUpdate;
procedure EndUpdate;
published
property Align;
property Anchors;
property AutoSize: boolean read FAutoSize write SetAutoSize default true;
property Images: TCustomImageList read GetImages write SetImages;
property Items: TSeCustomItem read FItems;
property PopupMenuOptions: TSePopupMenuOptions read FPopupMenuOptions write SetPopupMenuOptions;
property ShowBevel: boolean read FShowBevel write SetShowBevel default false;
end;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?