fccombo.hpp
上传用户:hylc_2004
上传日期:2014-01-23
资源大小:46800k
文件大小:13k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. // Borland C++ Builder
  2. // Copyright (c) 1995, 1999 by Borland International
  3. // All rights reserved
  4. // (DO NOT EDIT: machine generated header) 'fcCombo.pas' rev: 5.00
  5. #ifndef fcComboHPP
  6. #define fcComboHPP
  7. #pragma delphiheader begin
  8. #pragma option push -w-
  9. #pragma option push -Vx
  10. #include <fccombobutton.hpp> // Pascal unit
  11. #include <fcframe.hpp> // Pascal unit
  12. #include <DBCtrls.hpp> // Pascal unit
  13. #include <DB.hpp> // Pascal unit
  14. #include <Grids.hpp> // Pascal unit
  15. #include <Dialogs.hpp> // Pascal unit
  16. #include <TypInfo.hpp> // Pascal unit
  17. #include <fcCommon.hpp> // Pascal unit
  18. #include <StdCtrls.hpp> // Pascal unit
  19. #include <Mask.hpp> // Pascal unit
  20. #include <Buttons.hpp> // Pascal unit
  21. #include <Controls.hpp> // Pascal unit
  22. #include <Classes.hpp> // Pascal unit
  23. #include <Messages.hpp> // Pascal unit
  24. #include <Graphics.hpp> // Pascal unit
  25. #include <Windows.hpp> // Pascal unit
  26. #include <SysUtils.hpp> // Pascal unit
  27. #include <Menus.hpp> // Pascal unit
  28. #include <Forms.hpp> // Pascal unit
  29. #include <SysInit.hpp> // Pascal unit
  30. #include <System.hpp> // Pascal unit
  31. //-- user supplied -----------------------------------------------------------
  32. namespace Fccombo
  33. {
  34. //-- type declarations -------------------------------------------------------
  35. #pragma option push -b-
  36. enum TfcComboButtonStyle { cbsEllipsis, cbsDownArrow, cbsCustom };
  37. #pragma option pop
  38. #pragma option push -b-
  39. enum TfcComboStyle { csDropDown, csDropDownList };
  40. #pragma option pop
  41. #pragma option push -b-
  42. enum TfcAlignVertical { fcavTop, fcavCenter };
  43. #pragma option pop
  44. typedef void __fastcall (__closure *TfcComboCloseUpEvent)(System::TObject* Sender, bool Select);
  45. class DELPHICLASS TfcDropDownButton;
  46. class PASCALIMPLEMENTATION TfcDropDownButton : public Fccombobutton::TfcComboButton 
  47. {
  48. typedef Fccombobutton::TfcComboButton inherited;
  49. private:
  50. HIDESBASE MESSAGE void __fastcall CMDesignHitTest(Messages::TWMMouse &Message);
  51. protected:
  52. DYNAMIC void __fastcall MouseDown(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
  53. DYNAMIC void __fastcall MouseMove(Classes::TShiftState Shift, int X, int Y);
  54. DYNAMIC void __fastcall MouseUp(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
  55. virtual void __fastcall Paint(void);
  56. public:
  57. #pragma option push -w-inl
  58. /* TfcComboButton.Create */ inline __fastcall virtual TfcDropDownButton(Classes::TComponent* AOwner) : Fccombobutton::TfcComboButton(AOwner) { }
  59. #pragma option pop
  60. #pragma option push -w-inl
  61. /* TfcComboButton.Destroy */ inline __fastcall virtual ~TfcDropDownButton(void) { }
  62. #pragma option pop
  63. };
  64. class DELPHICLASS TfcCustomCombo;
  65. class PASCALIMPLEMENTATION TfcCustomCombo : public Stdctrls::TCustomEdit 
  66. {
  67. typedef Stdctrls::TCustomEdit inherited;
  68. private:
  69. Classes::TComponent* FController;
  70. TfcAlignVertical FAlignmentVertical;
  71. Controls::TWinControl* FBtnParent;
  72. TfcDropDownButton* FButton;
  73. Dbctrls::TFieldDataLink* FDataLink;
  74. int FDropDownCount;
  75. bool FInfoPower;
  76. Classes::TNotifyEvent FOnCustomDlg;
  77. TfcComboCloseUpEvent FOnCloseUp;
  78. Classes::TNotifyEvent FOnDropDown;
  79. Classes::TNotifyEvent FOnAfterDropDown;
  80. TfcComboButtonStyle FButtonStyle;
  81. int FButtonWidth;
  82. Controls::TControlCanvas* FCanvas;
  83. Controls::TControlCanvas* FPaintCanvas;
  84. TfcComboStyle FStyle;
  85. bool FReadOnly;
  86. bool FAllowClearKey;
  87. Classes::TNotifyEvent FOnMouseEnter;
  88. Classes::TNotifyEvent FOnMouseLeave;
  89. Fcframe::TfcEditFrame* FFrame;
  90. Fcframe::TfcButtonEffects* FButtonEffects;
  91. Controls::TCursor FSavedCursor;
  92. bool FIgnoreCursorChange;
  93. bool skipUpdate;
  94. bool FMouseInButtonControl;
  95. bool FDisableThemes;
  96. HIDESBASE MESSAGE void __fastcall WMSetFont(Messages::TWMSetFont &Message);
  97. MESSAGE void __fastcall CMCancelMode(Controls::TCMCancelMode &Message);
  98. HIDESBASE MESSAGE void __fastcall CMCursorChanged(Messages::TMessage &Message);
  99. HIDESBASE MESSAGE void __fastcall CMEnter(Messages::TWMNoParams &Message);
  100. HIDESBASE MESSAGE void __fastcall CMExit(Messages::TWMNoParams &Message);
  101. HIDESBASE MESSAGE void __fastcall CMFontChanged(Messages::TMessage &Message);
  102. HIDESBASE MESSAGE void __fastcall CMEnabledChanged(Messages::TMessage &Message);
  103. MESSAGE void __fastcall CMGetDataLink(Messages::TMessage &Message);
  104. HIDESBASE MESSAGE void __fastcall CMTextChanged(Messages::TMessage &Message);
  105. HIDESBASE MESSAGE void __fastcall CNKeyDown(Messages::TWMKey &Message);
  106. HIDESBASE MESSAGE void __fastcall WMSetFocus(Messages::TWMSetFocus &Message);
  107. HIDESBASE MESSAGE void __fastcall WMKillFocus(Messages::TWMKillFocus &Message);
  108. HIDESBASE MESSAGE void __fastcall WMPaint(Messages::TWMPaint &Message);
  109. HIDESBASE MESSAGE void __fastcall WMSize(Messages::TWMSize &Message);
  110. MESSAGE void __fastcall WMCut(Messages::TMessage &Message);
  111. MESSAGE void __fastcall WMPaste(Messages::TMessage &Message);
  112. HIDESBASE MESSAGE void __fastcall WMEraseBkgnd(Messages::TWMEraseBkgnd &Message);
  113. HIDESBASE MESSAGE void __fastcall CMMouseEnter(Messages::TMessage &Message);
  114. HIDESBASE MESSAGE void __fastcall CMMouseLeave(Messages::TMessage &Message);
  115. void __fastcall SetController(Classes::TComponent* Value);
  116. AnsiString __fastcall GetDataField();
  117. Db::TDataSource* __fastcall GetDataSource(void);
  118. bool __fastcall GetReadOnly(void);
  119. void __fastcall SetButtonStyle(TfcComboButtonStyle Value);
  120. Graphics::TBitmap* __fastcall GetButtonGlyph(void);
  121. void __fastcall SetButtonGlyph(Graphics::TBitmap* Value);
  122. void __fastcall SetButtonWidth(int val);
  123. int __fastcall GetButtonWidth(void);
  124. void __fastcall SetDataField(AnsiString Value);
  125. void __fastcall SetDataSource(Db::TDataSource* Value);
  126. HIDESBASE void __fastcall SetReadOnly(bool Value);
  127. void __fastcall SetStyle(TfcComboStyle Value);
  128. void __fastcall SetAlignmentVertical(TfcAlignVertical Value);
  129. void __fastcall SetFocused(bool Value);
  130. protected:
  131. bool FFocused;
  132. void __fastcall UpdateButtonGlyph(void);
  133. virtual void __fastcall SetDropDownCount(int Value);
  134. virtual Controls::TWinControl* __fastcall GetDropDownControl(void) = 0 ;
  135. virtual Controls::TWinControl* __fastcall GetDropDownContainer(void) = 0 ;
  136. virtual int __fastcall GetItemCount(void) = 0 ;
  137. virtual tagSIZE __fastcall GetItemSize(void) = 0 ;
  138. virtual int __fastcall GetLeftIndent(void);
  139. virtual void __fastcall BtnMouseDown(System::TObject* Sender, Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
  140. virtual void __fastcall DrawButton(Graphics::TCanvas* Canvas, const Types::TRect &R, Buttons::TButtonState State, Controls::TControlState ControlState, bool &DefaultPaint);
  141. virtual void __fastcall HideCaret(void);
  142. virtual void __fastcall Paint(void);
  143. virtual void __fastcall ShowCaret(void);
  144. virtual bool __fastcall GetShowButton(void);
  145. HIDESBASE virtual void __fastcall SetModified(bool Value);
  146. void __fastcall SetShowButton(bool Value);
  147. virtual bool __fastcall Editable(void);
  148. virtual bool __fastcall EditCanModify(void);
  149. virtual Types::TRect __fastcall GetClientEditRect();
  150. virtual Types::TRect __fastcall GetEditRect();
  151. virtual int __fastcall GetIconIndent(void);
  152. virtual int __fastcall GetIconLeft(void);
  153. virtual void __fastcall DoDropDown(void);
  154. virtual void __fastcall DoAfterDropDown(void);
  155. virtual void __fastcall CloseUp(bool Accept);
  156. virtual void __fastcall DataChange(System::TObject* Sender);
  157. virtual void __fastcall EditingChange(System::TObject* Sender);
  158. virtual void __fastcall HandleDropDownKeys(Word &Key, Classes::TShiftState Shift);
  159. virtual void __fastcall HandleGridKeys(Word &Key, Classes::TShiftState Shift);
  160. virtual void __fastcall Reset(void);
  161. virtual void __fastcall SetEditRect(void);
  162. virtual void __fastcall UpdateButtonPosition(void);
  163. virtual void __fastcall UpdateData(System::TObject* Sender);
  164. virtual bool __fastcall EffectiveReadOnly(void);
  165. virtual void __fastcall DoCloseUp(bool Accept);
  166. DYNAMIC void __fastcall DoEnter(void);
  167. virtual bool __fastcall SkipInheritedPaint(void);
  168. virtual int __fastcall GetRightIndent(const Types::TRect &Rect);
  169. virtual int __fastcall GetTopIndent(void);
  170. DYNAMIC void __fastcall Change(void);
  171. virtual void __fastcall CreateParams(Controls::TCreateParams &Params);
  172. virtual void __fastcall CreateWnd(void);
  173. DYNAMIC void __fastcall KeyDown(Word &Key, Classes::TShiftState Shift);
  174. DYNAMIC void __fastcall KeyPress(char &Key);
  175. virtual void __fastcall Loaded(void);
  176. DYNAMIC void __fastcall MouseDown(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
  177. DYNAMIC void __fastcall MouseMove(Classes::TShiftState Shift, int X, int Y);
  178. virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation);
  179. virtual void __fastcall WndProc(Messages::TMessage &Message);
  180. virtual void __fastcall PaintToCanvas(Graphics::TCanvas* Canvas, const Types::TRect &Rect, bool Highlight, bool GridPaint, AnsiString Text) = 0 ;
  181. virtual void __fastcall DrawFrame(Graphics::TCanvas* Canvas);
  182. virtual bool __fastcall IsCustom(void);
  183. void __fastcall InvalidateTransparentButton(void);
  184. virtual void __fastcall DoMouseEnter(void);
  185. virtual void __fastcall DoMouseLeave(void);
  186. __property Controls::TControlCanvas* Canvas = {read=FCanvas};
  187. __property Dbctrls::TFieldDataLink* DataLink = {read=FDataLink};
  188. __property Controls::TWinControl* DropDownContainer = {read=GetDropDownContainer};
  189. __property Controls::TWinControl* BtnParent = {read=FBtnParent};
  190. public:
  191. Variant ComboPatch;
  192. __property Classes::TComponent* Controller = {read=FController, write=SetController};
  193. __fastcall virtual TfcCustomCombo(Classes::TComponent* AOwner);
  194. __fastcall virtual ~TfcCustomCombo(void);
  195. bool __fastcall isTransparentEffective(void);
  196. HIDESBASE virtual void __fastcall SelectAll(void);
  197. virtual bool __fastcall IsDataBound(void);
  198. virtual bool __fastcall IsDroppedDown(void);
  199. virtual void __fastcall CheckCancelMode(void);
  200. virtual void __fastcall DrawInGridCell(Graphics::TCanvas* ACanvas, const Types::TRect &Rect, Grids::TGridDrawState State);
  201. virtual void __fastcall DropDown(void);
  202. __property TfcAlignVertical AlignmentVertical = {read=FAlignmentVertical, write=SetAlignmentVertical, default=0};
  203. __property bool AllowClearKey = {read=FAllowClearKey, write=FAllowClearKey, default=0};
  204. __property TfcDropDownButton* Button = {read=FButton};
  205. __property TfcComboButtonStyle ButtonStyle = {read=FButtonStyle, write=SetButtonStyle, nodefault};
  206. __property Graphics::TBitmap* ButtonGlyph = {read=GetButtonGlyph, write=SetButtonGlyph, stored=IsCustom};
  207. __property int ButtonWidth = {read=GetButtonWidth, write=SetButtonWidth, default=0};
  208. __property AnsiString DataField = {read=GetDataField, write=SetDataField};
  209. __property Db::TDataSource* DataSource = {read=GetDataSource, write=SetDataSource};
  210. __property int DropDownCount = {read=FDropDownCount, write=SetDropDownCount, nodefault};
  211. __property Controls::TWinControl* DropDownControl = {read=GetDropDownControl};
  212. __property bool InfoPower = {read=FInfoPower, nodefault};
  213. __property int ItemCount = {read=GetItemCount, nodefault};
  214. __property tagSIZE ItemSize = {read=GetItemSize};
  215. __property bool ReadOnly = {read=GetReadOnly, write=SetReadOnly, nodefault};
  216. __property bool ShowButton = {read=GetShowButton, write=SetShowButton, default=1};
  217. __property TfcComboStyle Style = {read=FStyle, write=SetStyle, nodefault};
  218. __property Classes::TNotifyEvent OnCustomDlg = {read=FOnCustomDlg, write=FOnCustomDlg};
  219. __property TfcComboCloseUpEvent OnCloseUp = {read=FOnCloseUp, write=FOnCloseUp};
  220. __property Classes::TNotifyEvent OnDropDown = {read=FOnDropDown, write=FOnDropDown};
  221. __property Classes::TNotifyEvent OnAfterDropDown = {read=FOnAfterDropDown, write=FOnAfterDropDown};
  222. __property Classes::TNotifyEvent OnMouseEnter = {read=FOnMouseEnter, write=FOnMouseEnter};
  223. __property Classes::TNotifyEvent OnMouseLeave = {read=FOnMouseLeave, write=FOnMouseLeave};
  224. __property Fcframe::TfcEditFrame* Frame = {read=FFrame, write=FFrame};
  225. __property Fcframe::TfcButtonEffects* ButtonEffects = {read=FButtonEffects, write=FButtonEffects};
  226. __property bool DisableThemes = {read=FDisableThemes, write=FDisableThemes, default=0};
  227. public:
  228. #pragma option push -w-inl
  229. /* TWinControl.CreateParented */ inline __fastcall TfcCustomCombo(HWND ParentWindow) : Stdctrls::TCustomEdit(ParentWindow) { }
  230. #pragma option pop
  231. };
  232. //-- var, const, procedure ---------------------------------------------------
  233. extern PACKAGE TfcCustomCombo* __fastcall fcGetControlInGrid(Classes::TComponent* Form, Classes::TComponent* Grid, AnsiString FieldName);
  234. } /* namespace Fccombo */
  235. #if !defined(NO_IMPLICIT_NAMESPACE_USE)
  236. using namespace Fccombo;
  237. #endif
  238. #pragma option pop // -w-
  239. #pragma option pop // -Vx
  240. #pragma delphiheader end.
  241. //-- end unit ----------------------------------------------------------------
  242. #endif // fcCombo