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

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) 'fcCalculator.pas' rev: 5.00
  5. #ifndef fcCalculatorHPP
  6. #define fcCalculatorHPP
  7. #pragma delphiheader begin
  8. #pragma option push -w-
  9. #pragma option push -Vx
  10. #include <Dialogs.hpp> // Pascal unit
  11. #include <fcCommon.hpp> // Pascal unit
  12. #include <fcframe.hpp> // Pascal unit
  13. #include <fcCombo.hpp> // Pascal unit
  14. #include <Buttons.hpp> // Pascal unit
  15. #include <Graphics.hpp> // Pascal unit
  16. #include <ComCtrls.hpp> // Pascal unit
  17. #include <ExtCtrls.hpp> // Pascal unit
  18. #include <StdCtrls.hpp> // Pascal unit
  19. #include <Controls.hpp> // Pascal unit
  20. #include <Classes.hpp> // Pascal unit
  21. #include <Forms.hpp> // Pascal unit
  22. #include <SysUtils.hpp> // Pascal unit
  23. #include <Messages.hpp> // Pascal unit
  24. #include <Windows.hpp> // Pascal unit
  25. #include <SysInit.hpp> // Pascal unit
  26. #include <System.hpp> // Pascal unit
  27. //-- user supplied -----------------------------------------------------------
  28. namespace Fccalculator
  29. {
  30. //-- type declarations -------------------------------------------------------
  31. #pragma option push -b-
  32. enum TfcCalcButtonType { btNone, bt0, bt1, bt2, bt3, bt4, bt5, bt6, bt7, bt8, bt9, btDecimal, btPlusMinus, btMultiply, btDivide, btAdd, btSubtract, btEquals, btSqrt, btPercent, btInverse, btBackspace, btClear, btClearAll, btMRecall, btMStore, btMClear, btMAdd };
  33. #pragma option pop
  34. class DELPHICLASS TfcCalculator;
  35. typedef void __fastcall (__closure *TfcSetButtonAttributesEvent)(TfcCalculator* Calc, TfcCalcButtonType &AType, AnsiString &ACaption, Graphics::TColor &AFontColor, Graphics::TColor &AButtonColor, AnsiString &AHint);
  36. #pragma option push -b-
  37. enum TCalcState { csNone, csAdd, csSubtract, csMultiply, csDivide };
  38. #pragma option pop
  39. #pragma option push -b-
  40. enum TfcCalcOption { cboHotTrackButtons, cboFlatButtons, cboHideBorder, cboHideEditor, cboShowStatus, cboHideMemory, cboSelectOnEquals, cboShowDecimal, cboSimpleCalc, cboFlatDrawStyle, cboRoundedButtons, cboDigitGrouping, cboCloseOnEquals };
  41. #pragma option pop
  42. typedef Set<TfcCalcOption, cboHotTrackButtons, cboCloseOnEquals>  TfcCalcOptions;
  43. #pragma option push -b-
  44. enum TfcCalcBitmapDrawStyle { cbdStretch, cbdTile, cbdTopLeft, cbdCenter };
  45. #pragma option pop
  46. class DELPHICLASS TfcCalcBevel;
  47. class PASCALIMPLEMENTATION TfcCalcBevel : public Extctrls::TBevel 
  48. {
  49. typedef Extctrls::TBevel inherited;
  50. public:
  51. Graphics::TColor FColor;
  52. protected:
  53. virtual void __fastcall Paint(void);
  54. public:
  55. #pragma option push -w-inl
  56. /* TBevel.Create */ inline __fastcall virtual TfcCalcBevel(Classes::TComponent* AOwner) : Extctrls::TBevel(AOwner) { }
  57. #pragma option pop
  58. public:
  59. #pragma option push -w-inl
  60. /* TGraphicControl.Destroy */ inline __fastcall virtual ~TfcCalcBevel(void) { }
  61. #pragma option pop
  62. };
  63. class DELPHICLASS TfcCalcLabel;
  64. class PASCALIMPLEMENTATION TfcCalcLabel : public Stdctrls::TLabel 
  65. {
  66. typedef Stdctrls::TLabel inherited;
  67. private:
  68. TfcCalculator* FCalc;
  69. HIDESBASE MESSAGE void __fastcall WMRButtonDown(Messages::TWMMouse &Message);
  70. HIDESBASE MESSAGE void __fastcall WMRButtonUp(Messages::TWMMouse &Message);
  71. public:
  72. __fastcall virtual TfcCalcLabel(Classes::TComponent* AOwner);
  73. public:
  74. #pragma option push -w-inl
  75. /* TGraphicControl.Destroy */ inline __fastcall virtual ~TfcCalcLabel(void) { }
  76. #pragma option pop
  77. };
  78. class DELPHICLASS TfcCalcStatusLabel;
  79. class PASCALIMPLEMENTATION TfcCalcStatusLabel : public Stdctrls::TLabel 
  80. {
  81. typedef Stdctrls::TLabel inherited;
  82. __published:
  83. HIDESBASE MESSAGE void __fastcall CMTextChanged(Messages::TMessage &Message);
  84. public:
  85. #pragma option push -w-inl
  86. /* TCustomLabel.Create */ inline __fastcall virtual TfcCalcStatusLabel(Classes::TComponent* AOwner) : Stdctrls::TLabel(AOwner) { }
  87. #pragma option pop
  88. public:
  89. #pragma option push -w-inl
  90. /* TGraphicControl.Destroy */ inline __fastcall virtual ~TfcCalcStatusLabel(void) { }
  91. #pragma option pop
  92. };
  93. class DELPHICLASS TfcCalcButton;
  94. class PASCALIMPLEMENTATION TfcCalcButton : public Buttons::TSpeedButton 
  95. {
  96. typedef Buttons::TSpeedButton inherited;
  97. private:
  98. bool FDrawKeyDown;
  99. TfcCalculator* FCalc;
  100. Graphics::TColor ButtonColor;
  101. Graphics::TColor ButtonFontColor;
  102. bool FTransparent;
  103. TfcCalcButtonType FBtnType;
  104. HIDESBASE MESSAGE void __fastcall CMEnabledChanged(Messages::TMessage &Message);
  105. HIDESBASE MESSAGE void __fastcall CMMouseEnter(Messages::TMessage &Message);
  106. HIDESBASE MESSAGE void __fastcall CMMouseLeave(Messages::TMessage &Message);
  107. MESSAGE void __fastcall WMEraseBkgnd(Messages::TWMEraseBkgnd &Message);
  108. HIDESBASE MESSAGE void __fastcall WMRButtonDown(Messages::TWMMouse &Message);
  109. HIDESBASE MESSAGE void __fastcall WMRButtonUp(Messages::TWMMouse &Message);
  110. TfcCalcOptions __fastcall GetCalcOptions(void);
  111. protected:
  112. virtual void __fastcall Paint(void);
  113. __property bool DrawKeyDown = {read=FDrawKeyDown, write=FDrawKeyDown, nodefault};
  114. public:
  115. __property TfcCalcOptions CalcOptions = {read=GetCalcOptions, nodefault};
  116. __fastcall virtual TfcCalcButton(Classes::TComponent* AOwner);
  117. __fastcall virtual ~TfcCalcButton(void);
  118. };
  119. #pragma pack(push, 4)
  120. struct TButtonRecord
  121. {
  122. int Top;
  123. int Left;
  124. int Width;
  125. int Height;
  126. AnsiString Caption;
  127. AnsiString Hint;
  128. Graphics::TColor Color;
  129. Graphics::TColor ButtonColor;
  130. TfcCalcButtonType BtnType;
  131. } ;
  132. #pragma pack(pop)
  133. typedef TButtonRecord fcCalculator__6[28];
  134. class PASCALIMPLEMENTATION TfcCalculator : public Extctrls::TCustomPanel 
  135. {
  136. typedef Extctrls::TCustomPanel inherited;
  137. private:
  138. Stdctrls::TEdit* FResultEdit;
  139. Stdctrls::TCustomEdit* FCalcEdit;
  140. Stdctrls::TLabel* FStatusLabel;
  141. double FMemoryValue;
  142. double FLastValue;
  143. double FCurrentValue;
  144. double FResultValue;
  145. double FLastOperand;
  146. TfcCalcButtonType FLastOP;
  147. TfcCalcButtonType FNextToLastOp;
  148. bool FDecimalEntered;
  149. bool FClearOnNextKey;
  150. bool FLastOperatorEquals;
  151. AnsiString FLastStatus;
  152. bool FClearStatus;
  153. int FDecimalPlaces;
  154. TfcCalcButtonType FLastButtonType;
  155. bool F3D;
  156. TfcCalcBevel* FStatusBevel;
  157. TfcCalcBevel* FMemoryBevel;
  158. TfcCalcLabel* FMemoryStatus;
  159. Graphics::TColor FPanelColor;
  160. bool FBackSpaceValid;
  161. TfcCalcOptions FOptions;
  162. Graphics::TPicture* FBackgroundBitmap;
  163. Graphics::TBitmap* FPaintBitmap;
  164. TfcSetButtonAttributesEvent FOnSetButtonAttributes;
  165. #pragma pack(push, 1)
  166. Types::TRect OldBoundsRect;
  167. #pragma pack(pop)
  168. int FMargin;
  169. TfcCalcBitmapDrawStyle FBackgroundBitmapDrawStyle;
  170. int FCalcPrecision;
  171. bool InitBitmapsFlag;
  172. bool OpPressedWithShiftFlag;
  173. void __fastcall SetOptions(TfcCalcOptions Value);
  174. void __fastcall SetPanelColor(Graphics::TColor Value);
  175. void __fastcall SetMargin(int Value);
  176. void __fastcall SetBackgroundBitmapDrawStyle(TfcCalcBitmapDrawStyle Value);
  177. void __fastcall SetBackgroundBitmap(Graphics::TPicture* Value);
  178. void __fastcall SetBorder3D(const bool Value);
  179. HIDESBASE MESSAGE void __fastcall WMSize(Messages::TWMSize &Message);
  180. HIDESBASE MESSAGE void __fastcall WMEraseBkgnd(Messages::TWMEraseBkgnd &Message);
  181. protected:
  182. TButtonRecord Btns[28];
  183. virtual void __fastcall CalcButtons(void);
  184. virtual void __fastcall Compute(System::TObject* Sender);
  185. HIDESBASE virtual AnsiString __fastcall GetText();
  186. HIDESBASE virtual void __fastcall SetText(const AnsiString Value);
  187. virtual Stdctrls::TCustomEdit* __fastcall GetCalcEdit(void);
  188. virtual void __fastcall SetCalcEdit(const Stdctrls::TCustomEdit* Value);
  189. virtual TButtonRecord __fastcall ButtonRecord(TfcCalcButtonType btnType, int aTop, int aLeft, int aWidth, int aHeight, AnsiString aCaption, Graphics::TColor aFontColor, AnsiString aHint);
  190. virtual void __fastcall Loaded(void);
  191. __property int CalcPrecision = {read=FCalcPrecision, write=FCalcPrecision, nodefault};
  192. public:
  193. __fastcall virtual TfcCalculator(Classes::TComponent* AOwner);
  194. __fastcall virtual ~TfcCalculator(void);
  195. HIDESBASE virtual void __fastcall FullRepaint(void);
  196. virtual void __fastcall RefreshSummary(void);
  197. virtual void __fastcall Paint(void);
  198. virtual bool __fastcall IsBinaryOperator(TfcCalcButtonType ButtonType);
  199. virtual void __fastcall Reset(void);
  200. virtual char __fastcall OpToChar(TfcCalcButtonType aOp);
  201. TfcCalcButton* __fastcall CharToButton(char c, bool Ctrl);
  202. TfcCalcButton* __fastcall OpToButton(TfcCalcButtonType op);
  203. virtual TfcCalcButtonType __fastcall CharToOp(char c, bool Ctrl);
  204. virtual void __fastcall ResultKeyDown(System::TObject* Sender, Word &Key, Classes::TShiftState Shift);
  205. virtual void __fastcall ResultKeyUp(System::TObject* Sender, Word &Key, Classes::TShiftState Shift);
  206. virtual void __fastcall DoCalc(TfcCalcButtonType ButtonType);
  207. virtual void __fastcall DoCreateButton(TfcCalculator* Calc, TfcCalcButtonType &AType, AnsiString &ACaption, Graphics::TColor &AFontColor, Graphics::TColor &AButtonColor, AnsiString &AHint);
  208. __property double Value = {read=FCurrentValue, write=FCurrentValue};
  209. __property Graphics::TBitmap* PaintBitmap = {read=FPaintBitmap, write=FPaintBitmap};
  210. __property Stdctrls::TEdit* ResultEdit = {read=FResultEdit, write=FResultEdit};
  211. __property Stdctrls::TLabel* StatusLabel = {read=FStatusLabel, write=FStatusLabel};
  212. __property TfcCalcLabel* MemoryStatus = {read=FMemoryStatus, write=FMemoryStatus};
  213. __property double MemoryValue = {read=FMemoryValue, write=FMemoryValue};
  214. __property Stdctrls::TCustomEdit* CalcEdit = {read=GetCalcEdit, write=SetCalcEdit};
  215. __property TfcCalcButtonType LastOp = {read=FLastOP, nodefault};
  216. __property bool LastOperatorEquals = {read=FLastOperatorEquals, nodefault};
  217. __published:
  218. __property Align ;
  219. __property Graphics::TPicture* BackgroundBitmap = {read=FBackgroundBitmap, write=SetBackgroundBitmap};
  220. __property TfcCalcBitmapDrawStyle BackgroundBitmapDrawStyle = {read=FBackgroundBitmapDrawStyle, write=SetBackgroundBitmapDrawStyle, nodefault};
  221. __property bool Border3D = {read=F3D, write=SetBorder3D, default=0};
  222. __property int ButtonMargin = {read=FMargin, write=SetMargin, default=3};
  223. __property int FixedDecimalPlaces = {read=FDecimalPlaces, write=FDecimalPlaces, default=-1};
  224. __property Font ;
  225. __property TfcCalcOptions Options = {read=FOptions, write=SetOptions, default=0};
  226. __property Graphics::TColor PanelColor = {read=FPanelColor, write=SetPanelColor, default=-2147483633};
  227. __property AnsiString Text = {read=GetText, write=SetText};
  228. __property TfcSetButtonAttributesEvent OnSetButtonAttributes = {read=FOnSetButtonAttributes, write=FOnSetButtonAttributes};
  229. __property Visible ;
  230. public:
  231. #pragma option push -w-inl
  232. /* TWinControl.CreateParented */ inline __fastcall TfcCalculator(HWND ParentWindow) : Extctrls::TCustomPanel(ParentWindow) { }
  233. #pragma option pop
  234. };
  235. //-- var, const, procedure ---------------------------------------------------
  236. } /* namespace Fccalculator */
  237. #if !defined(NO_IMPLICIT_NAMESPACE_USE)
  238. using namespace Fccalculator;
  239. #endif
  240. #pragma option pop // -w-
  241. #pragma option pop // -Vx
  242. #pragma delphiheader end.
  243. //-- end unit ----------------------------------------------------------------
  244. #endif // fcCalculator