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