Цитата(northener @ 1.2.2011, 17:20 ) | | Есть у TWinControl это свойство. |
Да ну. Где?
unit Controls;
| Код | {$IF DEFINED(CLR)} TWinControl = class(TControl, IWinControl) strict private class var FPendingParentWindow: HWND; {$ELSE} TWinControl = class(TControl) {$IFEND} private FAlignControlList: TList; FAlignLevel: Word; FBevelEdges: TBevelEdges; FBevelInner: TBevelCut; FBevelOuter: TBevelCut; FBevelKind: TBevelKind; FBevelWidth: TBevelWidth; FBorderWidth: TBorderWidth; FPadding: TPadding; FBrush: TBrush; FDockClients: TList; FDockManager: IDockManager; FImeMode: TImeMode; FImeName: TImeName; FParentWindow: HWND; FTabList: TList; FControls: TList; FWinControls: TList; FTabOrder: Integer; FTabStop: Boolean; FCtl3D: Boolean; FShowing: Boolean; FUseDockManager: Boolean; FDockSite: Boolean; FParentCtl3D: Boolean; FParentDoubleBuffered: Boolean; FPerformingShowingChanged: Boolean; FOnDockDrop: TDockDropEvent; FOnDockOver: TDockOverEvent; FOnEnter: TNotifyEvent; FOnExit: TNotifyEvent; FOnGetSiteInfo: TGetSiteInfoEvent; FOnKeyDown: TKeyEvent; FOnKeyPress: TKeyPressEvent; FOnKeyUp: TKeyEvent; FOnUnDock: TUnDockEvent; FOnAlignInsertBefore: TAlignInsertBeforeEvent; FOnAlignPosition: TAlignPositionEvent; FMouseInClient: Boolean; FMouseControl: TControl; FTouchControl: TControl; {$IF DEFINED(CLR)} FDefWndProc: TFNWndProc; {$ELSE} FDefWndProc: Pointer; FHandle: HWnd; FObjectInstance: Pointer; {$IFEND} procedure AlignControl(AControl: TControl); procedure CalcConstraints(var MinWidth, MinHeight, MaxWidth, MaxHeight: Integer); procedure DoPaddingChange(Sender: TObject); function GetAlignDisabled: Boolean; function GetControl(Index: Integer): TControl; function GetControlCount: Integer; function GetDockClientCount: Integer; function GetDockClients(Index: Integer): TControl; function GetHandle: HWND; function GetParentBackground: Boolean; inline; function GetTabOrder: TTabOrder; function GetVisibleDockClientCount: Integer; procedure Insert(AControl: TControl); procedure InvalidateFrame; procedure InvokeHelp; function IsCtl3DStored: Boolean; function IsDoubleBufferedStored: Boolean; function PrecedingWindow(Control: TWinControl): HWND; procedure ReadDesignSize(Reader: TReader); procedure Remove(AControl: TControl); procedure RemoveFocus(Removing: Boolean); procedure SetBevelCut(Index: Integer; const Value: TBevelCut); procedure SetBevelEdges(const Value: TBevelEdges); procedure SetBevelKind(const Value: TBevelKind); procedure SetBevelWidth(const Value: TBevelWidth); procedure SetBorderWidth(Value: TBorderWidth); procedure SetCtl3D(Value: Boolean); procedure SetDockSite(Value: Boolean); procedure SetDoubleBuffered(Value: Boolean); procedure SetPadding(const Value: TPadding); procedure SetParentCtl3D(Value: Boolean); procedure SetParentWindow(Value: HWND); procedure SetTabOrder(Value: TTabOrder); procedure SetTabStop(Value: Boolean); procedure SetUseDockManager(Value: Boolean); procedure SetZOrderPosition(Position: Integer); procedure UpdateTabOrder(Value: TTabOrder); procedure UpdateShowing; procedure WriteDesignSize(Writer: TWriter); function IsMenuKey(var Message: TWMKey): Boolean; procedure WMInputLangChange(var Message: TMessage); message WM_INPUTLANGCHANGE; procedure CMInputLangChange(var Message: TMessage); message CM_INPUTLANGCHANGE; procedure WMPaint(var Message: TWMPaint); message WM_PAINT; procedure WMCommand(var Message: TWMCommand); message WM_COMMAND; procedure WMNotify(var Message: TWMNotify); message WM_NOTIFY; procedure WMSysColorChange(var Message: TWMSysColorChange); message WM_SYSCOLORCHANGE; procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL; procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL; procedure WMCompareItem(var Message: TWMCompareItem); message WM_COMPAREITEM; procedure WMDeleteItem(var Message: TWMDeleteItem); message WM_DELETEITEM; procedure WMDrawItem(var Message: TWMDrawItem); message WM_DRAWITEM; procedure WMMeasureItem(var Message: TWMMeasureItem); message WM_MEASUREITEM; procedure WMEraseBkgnd(var Message: TWmEraseBkgnd); message WM_ERASEBKGND; procedure WMWindowPosChanged(var Message: TWMWindowPosChanged); message WM_WINDOWPOSCHANGED; procedure WMWindowPosChanging(var Message: TWMWindowPosChanging); message WM_WINDOWPOSCHANGING; procedure WMSize(var Message: TWMSize); message WM_SIZE; procedure WMMove(var Message: TWMMove); message WM_MOVE; procedure WMSetCursor(var Message: TWMSetCursor); message WM_SETCURSOR; procedure WMKeyDown(var Message: TWMKeyDown); message WM_KEYDOWN; procedure WMSysKeyDown(var Message: TWMSysKeyDown); message WM_SYSKEYDOWN; procedure WMKeyUp(var Message: TWMKeyUp); message WM_KEYUP; procedure WMSysKeyUp(var Message: TWMSysKeyUp); message WM_SYSKEYUP; procedure WMChar(var Message: TWMChar); message WM_CHAR; procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND; procedure WMCharToItem(var Message: TWMCharToItem); message WM_CHARTOITEM; procedure WMParentNotify(var Message: TWMParentNotify); message WM_PARENTNOTIFY; procedure WMVKeyToItem(var Message: TWMVKeyToItem); message WM_VKEYTOITEM; procedure WMDestroy(var Message: TWMDestroy); message WM_DESTROY; procedure WMMouseActivate(var Message: TWMMouseActivate); message WM_MOUSEACTIVATE; procedure WMNCCalcSize(var Message: TWMNCCalcSize); message WM_NCCALCSIZE; procedure WMNCDestroy(var Message: TWMNCDestroy); message WM_NCDESTROY; procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST; procedure WMNCPaint(var Message: TWMNCPaint); message WM_NCPAINT; procedure WMQueryNewPalette(var Message: TMessage); message WM_QUERYNEWPALETTE; procedure WMPaletteChanged(var Message: TMessage); message WM_PALETTECHANGED; procedure WMWinIniChange(var Message: TMessage); message WM_WININICHANGE; procedure WMFontChange(var Message: TMessage); message WM_FONTCHANGE; procedure WMTimeChange(var Message: TMessage); message WM_TIMECHANGE; procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS; procedure WMKillFocus(var Message: TWMKillFocus); message WM_KILLFOCUS; procedure WMIMEStartComp(var Message: TMessage); message WM_IME_STARTCOMPOSITION; procedure WMIMEEndComp(var Message: TMessage); message WM_IME_ENDCOMPOSITION; procedure WMContextMenu(var Message: TWMContextMenu); message WM_CONTEXTMENU; procedure WMGesture(var Message: TMessage); message WM_GESTURE; procedure WMGestureNotify(var Message: TWMGestureNotify); message WM_GESTURENOTIFY; procedure WMTabletQuerySystemGestureStatus(var Message: TMessage); message WM_TABLET_QUERYSYSTEMGESTURESTATUS; procedure CMChanged(var Message: TCMChanged); message CM_CHANGED; procedure CMChildKey(var Message: TCMChildKey); message CM_CHILDKEY; procedure CMDialogKey(var Message: TCMDialogKey); message CM_DIALOGKEY; procedure CMDialogChar(var Message: TCMDialogChar); message CM_DIALOGCHAR; procedure CMVisibleChanged(var Message: TMessage); message CM_VISIBLECHANGED; procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED; procedure CMColorChanged(var Message: TMessage); message CM_COLORCHANGED; procedure CMFontChanged(var Message: TMessage); message CM_FONTCHANGED; procedure CMBorderChanged(var Message: TMessage); message CM_BORDERCHANGED; procedure CMCursorChanged(var Message: TMessage); message CM_CURSORCHANGED; procedure CMCtl3DChanged(var Message: TMessage); message CM_CTL3DCHANGED; procedure CMParentCtl3DChanged(var Message: TMessage); message CM_PARENTCTL3DCHANGED; procedure CMParentDoubleBufferedChanged(var Message: TMessage); message CM_PARENTDOUBLEBUFFEREDCHANGED; procedure CMShowingChanged(var Message: TMessage); message CM_SHOWINGCHANGED; procedure CMShowHintChanged(var Message: TMessage); message CM_SHOWHINTCHANGED; procedure CMEnter(var Message: TCMEnter); message CM_ENTER; procedure CMExit(var Message: TCMExit); message CM_EXIT; procedure CMDesignHitTest(var Message: TCMDesignHitTest); message CM_DESIGNHITTEST; procedure CMSysColorChange(var Message: TMessage); message CM_SYSCOLORCHANGE; procedure CMSysFontChanged(var Message: TMessage); message CM_SYSFONTCHANGED; procedure CMWinIniChange(var Message: TWMWinIniChange); message CM_WININICHANGE; procedure CMFontChange(var Message: TMessage); message CM_FONTCHANGE; procedure CMTimeChange(var Message: TMessage); message CM_TIMECHANGE; procedure CMDrag(var Message: TCMDrag); message CM_DRAG; procedure CNKeyDown(var Message: TWMKeyDown); message CN_KEYDOWN; procedure CNKeyUp(var Message: TWMKeyUp); message CN_KEYUP; procedure CNChar(var Message: TWMChar); message CN_CHAR; procedure CNSysKeyDown(var Message: TWMKeyDown); message CN_SYSKEYDOWN; procedure CNSysChar(var Message: TWMChar); message CN_SYSCHAR; procedure CMRecreateWnd(var Message: TMessage); message CM_RECREATEWND; procedure CMInvalidate(var Message: TMessage); message CM_INVALIDATE; procedure CMBiDiModeChanged(var Message: TMessage); message CM_BIDIMODECHANGED; procedure CMDoubleBufferedChanged(var Message: TMessage); message CM_DOUBLEBUFFEREDCHANGED; procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED; procedure WMPrintClient(var Message: TWMPrintClient); message WM_PRINTCLIENT; procedure CMTabletOptionsChanged(var Message: TMessage); message CM_TABLETOPTIONSCHANGED; {$IF NOT DEFINED(CLR)} procedure CMFocusChanged(var Message: TCMFocusChanged); message CM_FOCUSCHANGED; procedure CMControlListChange(var Message: TMessage); message CM_CONTROLLISTCHANGE; procedure CMControlListChanging(var Message: TMessage); message CM_CONTROLLISTCHANGING; procedure CMDockClient(var Message: TCMDockClient); message CM_DOCKCLIENT; procedure CMUnDockClient(var Message: TCMUnDockClient); message CM_UNDOCKCLIENT; procedure CMFloat(var Message: TCMFloat); message CM_FLOAT; {$ELSE} function GetWindowHandle: HWND; procedure SetWindowHandle(Value: HWND); procedure WMIMEChar(var Message: TWMChar); message WM_IME_CHAR; public function GetTextPiece(Size: Integer): TCaption; override; function GetTextLen: Integer; override; procedure SetText(const Value: TCaption); override; {$IFEND} protected FDoubleBuffered: Boolean; FInImeComposition: Boolean; FDesignSize: TPoint; {$IF DEFINED(CLR)} FHandle: THWndWrapper; {$IFEND} procedure ActionChange(Sender: TObject; CheckDefaults: Boolean); override; procedure AddBiDiModeExStyle(var ExStyle: DWORD); procedure AssignTo(Dest: TPersistent); override; procedure AdjustClientRect(var Rect: TRect); virtual; procedure AdjustSize; override; procedure AlignControls(AControl: TControl; var Rect: TRect); virtual; procedure ArrangeControl(AControl: TControl; const ParentSize: TPoint; AAlign: TAlign; AAlignInfo: TAlignInfo; var Rect: TRect; UpdateAnchorOrigin: Boolean = False); function CanAutoSize(var NewWidth, NewHeight: Integer): Boolean; override; function CanResize(var NewWidth, NewHeight: Integer): Boolean; override; procedure ChangeScale(M, D: Integer); override; procedure ConstrainedResize(var MinWidth, MinHeight, MaxWidth, MaxHeight: Integer); override; procedure ControlsAligned; dynamic; function CreateDockManager: IDockManager; dynamic; procedure CreateHandle; virtual; procedure CreateParams(var Params: TCreateParams); virtual; procedure CreateWindowHandle(const Params: TCreateParams); virtual; procedure CreateWnd; virtual; function CustomAlignInsertBefore(C1, C2: TControl): Boolean; virtual; procedure CustomAlignPosition(Control: TControl; var NewLeft, NewTop, NewWidth, NewHeight: Integer; var AlignRect: TRect; AlignInfo: TAlignInfo); virtual; procedure DefineProperties(Filer: TFiler); override; procedure DestroyHandle; virtual; procedure DestroyWindowHandle; virtual; procedure DestroyWnd; virtual; procedure DoAddDockClient(Client: TControl; const ARect: TRect); dynamic; procedure DockOver(Source: TDragDockObject; X, Y: Integer; State: TDragState; var Accept: Boolean); dynamic; function DockReplaceDockClient(Client: TControl; NewDockSite: TWinControl; DropControl: TControl; ControlSide: TAlign; ReplacementClient: TControl): Boolean; virtual; procedure DoDockOver(Source: TDragDockObject; X, Y: Integer; State: TDragState; var Accept: Boolean); dynamic; procedure DoEnter; dynamic; procedure DoExit; dynamic; procedure DoFlipChildren; dynamic; function DoKeyDown(var Message: TWMKey): Boolean; function DoKeyPress(var Message: TWMKey): Boolean; function DoKeyUp(var Message: TWMKey): Boolean; procedure DoRemoveDockClient(Client: TControl); dynamic; function DoUnDock(NewTarget: TWinControl; Client: TControl): Boolean; dynamic; function FindNextControl(CurControl: TWinControl; GoForward, CheckTabStop, CheckParent: Boolean): TWinControl; procedure FixupTabList; function GetActionLinkClass: TControlActionLinkClass; override; function GetClientOrigin: TPoint; override; function GetClientRect: TRect; override; function GetControlExtents: TRect; virtual; function GetDeviceContext(var WindowHandle: HWND): HDC; overload; override; function GetParentHandle: HWND; procedure GetSiteInfo(Client: TControl; var InfluenceRect: TRect; MousePos: TPoint; var CanDock: Boolean); dynamic; function GetTopParentHandle: HWnd; procedure InvalidateDockHostSite(FocusLost: Boolean); function IsControlMouseMsg(var Message: TWMMouse): Boolean; function IsControlActivateMsg(var Message: TWMMouseActivate; Control: TControl = nil): Boolean; function IsQualifyingSite(const Client: TControl): Boolean; dynamic; procedure KeyDown(var Key: Word; Shift: TShiftState); dynamic; procedure KeyUp(var Key: Word; Shift: TShiftState); dynamic; procedure KeyPress(var Key: Char); dynamic; procedure MainWndProc(var Message: TMessage); procedure Notification(AComponent: TComponent; Operation: TOperation); override; procedure NotifyControls(Msg: Word); procedure PaintControls(DC: HDC; First: TControl); procedure PaintHandler(var Message: TWMPaint); procedure PaintWindow(DC: HDC); virtual; function PaletteChanged(Foreground: Boolean): Boolean; override; procedure ReadState(Reader: TReader); override; procedure RecreateWnd; procedure ReloadDockedControl(const AControlName: string; var AControl: TControl); dynamic; procedure ResetIme; function ResetImeComposition(Action: DWORD): Boolean; procedure RequestAlign; override; procedure ScaleControls(M, D: Integer); procedure ScalePadding(M, D: Integer); procedure SelectFirst; procedure SelectNext(CurControl: TWinControl; GoForward, CheckTabStop: Boolean); procedure SetChildOrder(Child: TComponent; Order: Integer); override; procedure SetIme; function SetImeCompositionWindow(Font: TFont; XPos, YPos: Integer): Boolean; procedure SetParent(AParent: TWinControl); override; procedure SetParentBackground(Value: Boolean); virtual; procedure SetParentDoubleBuffered(Value: Boolean); virtual; procedure SetZOrder(TopMost: Boolean); override; procedure ShowControl(AControl: TControl); virtual; procedure UpdateBounds; procedure UpdateControlOriginalParentSize(AControl: TControl; var AOriginalParentSize: TPoint); virtual; procedure UpdateRecreatingFlag(Recreating: Boolean); procedure UpdateUIState(CharCode: Word); procedure WndProc(var Message: TMessage); override; {$IF DEFINED(CLR)} procedure FocusChanged(NewFocusControl: TWinControl); virtual; procedure FloatControl(DockSource: TDragDockObject); override; function DockClient(DockSource: TDragDockObject; MousePos: TPoint): Integer; virtual; // replaces use of CM_DockClient function UndockClient(NewTarget, Client: TControl): Boolean; virtual; // replaces use of CM_UndockClient procedure ControlChange(Inserting: Boolean; Child: TControl); virtual; // replaces use of CM_CONTROLCHANGE procedure ControlListChange(Inserting: Boolean; Child: TControl); virtual; // replaces use of CM_CONTROLLISTCHANGE procedure ControlListChanging(Inserting: Boolean; Child: TControl; AParent: TWinControl); overload; virtual; deprecated; // replaces use of CM_CONTROLLISTCHANGING procedure ControlListChanging(Inserting: Boolean; var Item: TControlListItem); overload; virtual; // replaces use of CM_CONTROLLISTCHANGING procedure CreateSubClass(var Params: TCreateParams; ControlClassName: string); procedure DoMouseEnter; override; procedure DoMouseLeave; override; function GetDeviceContext(var WindowHandle: THWndWrapper): HDC; overload; override; {$ELSE} procedure CreateSubClass(var Params: TCreateParams; ControlClassName: PChar); procedure RemoveWindowProps; {$IFEND} property AlignControlList: TList read FAlignControlList; property BevelEdges: TBevelEdges read FBevelEdges write SetBevelEdges default [beLeft, beTop, beRight, beBottom]; property BevelInner: TBevelCut index 0 read FBevelInner write SetBevelCut default bvRaised; property BevelOuter: TBevelCut index 1 read FBevelOuter write SetBevelCut default bvLowered; property BevelKind: TBevelKind read FBevelKind write SetBevelKind default bkNone; property BevelWidth: TBevelWidth read FBevelWidth write SetBevelWidth default 1; property BorderWidth: TBorderWidth read FBorderWidth write SetBorderWidth default 0; property Ctl3D: Boolean read FCtl3D write SetCtl3D stored IsCtl3DStored; property ImeMode: TImeMode read FImeMode write FImeMode default imDontCare; property ImeName: TImeName read FImeName write FImeName; property ParentBackground: Boolean read GetParentBackground write SetParentBackground; property ParentCtl3D: Boolean read FParentCtl3D write SetParentCtl3D default True; {$IF DEFINED(CLR)} property DefWndProc: TFNWndProc read FDefWndProc write FDefWndProc; property WindowHandle: HWND read GetWindowHandle write SetWindowHandle; {$ELSE} property DefWndProc: Pointer read FDefWndProc write FDefWndProc; property WindowHandle: HWnd read FHandle write FHandle; {$IFEND} property OnAlignInsertBefore: TAlignInsertBeforeEvent read FOnAlignInsertBefore write FOnAlignInsertBefore; property OnAlignPosition: TAlignPositionEvent read FOnAlignPosition write FOnAlignPosition; property OnDockDrop: TDockDropEvent read FOnDockDrop write FOnDockDrop; property OnDockOver: TDockOverEvent read FOnDockOver write FOnDockOver; property OnEnter: TNotifyEvent read FOnEnter write FOnEnter; property OnExit: TNotifyEvent read FOnExit write FOnExit; property OnGetSiteInfo: TGetSiteInfoEvent read FOnGetSiteInfo write FOnGetSiteInfo; property OnKeyDown: TKeyEvent read FOnKeyDown write FOnKeyDown; property OnKeyPress: TKeyPressEvent read FOnKeyPress write FOnKeyPress; property OnKeyUp: TKeyEvent read FOnKeyUp write FOnKeyUp; property OnUnDock: TUnDockEvent read FOnUnDock write FOnUnDock; public constructor Create(AOwner: TComponent); override; {$IF DEFINED(CLR)} class function CreateParented(AParentWindow: HWND): TWinControl; {$ELSE} constructor CreateParented(ParentWindow: HWnd); {$IFEND} class function CreateParentedControl(ParentWindow: HWND): TWinControl; destructor Destroy; override; procedure Broadcast(var Message); function CanFocus: Boolean; dynamic; function ContainsControl(Control: TControl): Boolean; function ControlAtPos(const Pos: TPoint; AllowDisabled: Boolean; AllowWinControls: Boolean = False; AllLevels: Boolean = False): TControl; procedure DefaultHandler(var Message); override; procedure DisableAlign; inline; property DockClientCount: Integer read GetDockClientCount; property DockClients[Index: Integer]: TControl read GetDockClients; procedure DockDrop(Source: TDragDockObject; X, Y: Integer); dynamic; property DockSite: Boolean read FDockSite write SetDockSite default False; property DockManager: IDockManager read FDockManager write FDockManager; property DoubleBuffered: Boolean read FDoubleBuffered write SetDoubleBuffered stored IsDoubleBufferedStored; procedure EnableAlign; function FindChildControl(const ControlName: string): TControl; procedure FlipChildren(AllLevels: Boolean); dynamic; function Focused: Boolean; dynamic; procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override; procedure GetTabControlList(List: TList); dynamic; procedure GetTabOrderList(List: TList); dynamic; function HandleAllocated: Boolean; procedure HandleNeeded; procedure InsertControl(AControl: TControl); procedure Invalidate; override; procedure PaintTo(DC: HDC; X, Y: Integer); overload; procedure PaintTo(Canvas: TCanvas; X, Y: Integer); overload; function PreProcessMessage(var Msg: TMsg): Boolean; dynamic; procedure RemoveControl(AControl: TControl); procedure Realign; inline; procedure Repaint; override; procedure ScaleBy(M, D: Integer); procedure ScrollBy(DeltaX, DeltaY: Integer); procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override; procedure SetDesignVisible(Value: Boolean); override; procedure SetFocus; virtual; procedure Update; override; procedure UpdateControlState; property AlignDisabled: Boolean read GetAlignDisabled; property MouseInClient: Boolean read FMouseInClient; property VisibleDockClientCount: Integer read GetVisibleDockClientCount; property Brush: TBrush read FBrush; property Controls[Index: Integer]: TControl read GetControl; property ControlCount: Integer read GetControlCount; property Handle: HWND read GetHandle; property Padding: TPadding read FPadding write SetPadding; property ParentDoubleBuffered: Boolean read FParentDoubleBuffered write SetParentDoubleBuffered default True; property ParentWindow: HWND read FParentWindow write SetParentWindow; property Showing: Boolean read FShowing; property TabOrder: TTabOrder read GetTabOrder write SetTabOrder default -1; property TabStop: Boolean read FTabStop write SetTabStop default False; property UseDockManager: Boolean read FUseDockManager write SetUseDockManager default False; end;
|
или я не там смотрю?
Добавлено через 1 минуту и 59 секунд
Цитата(Snowy @ 1.2.2011, 18:17 ) | | Если нет Caption, то, как правило, есть Text. |
Ну так Caption и Text - это как бы разные вещи. Caption редактировать нельзя, а Text зачастую можно.
|