home *** CD-ROM | disk | FTP | other *** search
/ POINT Software Programming / PPROG1.ISO / c / fli106c / diabcd.cpp < prev    next >
C/C++ Source or Header  |  1992-03-11  |  2KB  |  99 lines

  1. //
  2. // The Fusion Library Interface for DOS
  3. // Version 1.06c
  4. // Copyright (C) 1990, 1991, 1992
  5. // Software Dimensions
  6. //
  7. // DialogClass
  8. // DiaBcd
  9. //
  10.  
  11. #include <bcd.h>
  12. #include "fli.h"
  13. #include "elements.h"
  14. #include "colors.h"
  15.  
  16. #ifdef __BCPLUSPLUS__
  17. #pragma hdrstop
  18. #endif
  19.  
  20. #include <string.h>
  21. #include <stdlib.h>
  22.  
  23. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  24. //
  25. // DiaBcd()
  26. //
  27. // Constructor
  28. //
  29. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  30.  
  31. DiaBcd::DiaBcd(int _X,int _Y,char *_Mask,bcd &_Value,int _NoEditErase) :
  32.   Numerics(_NoEditErase), Value(_Value)
  33. {
  34.   X=_X;
  35.   Y=_Y;
  36.   Mask=_Mask;
  37.   Width=strlen(Mask);
  38.   Height=1;
  39.  
  40.   AllowedAfterDecimal=0;
  41.  
  42.   if (strpbrk(Mask,"-+("))
  43.     AllowedNegative++;
  44.  
  45.   CountPlaces(Mask,AllowedBeforeDecimal,AllowedAfterDecimal);
  46.  
  47.   Numerics::Value=new char[30];
  48.  
  49.   double ConvertedBcd=real(_Value);
  50.   gcvt(ConvertedBcd,AllowedBeforeDecimal+AllowedAfterDecimal,Numerics::Value);
  51.   TrimTrailingZeros();
  52. }
  53.  
  54. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  55. //
  56. // Show()
  57. //
  58. // Show the element
  59. //
  60. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  61.  
  62. void DiaBcd::Show()
  63. {
  64.   double CovertedValue=atof(Numerics::Value);
  65.   bcd CheckValue=bcd(CovertedValue);
  66.  
  67.   if (Value!=CheckValue)
  68.   {
  69.     double ConvertedBcd=real(Value);
  70.     gcvt(ConvertedBcd,AllowedBeforeDecimal+AllowedAfterDecimal,Numerics::Value);
  71.     TrimTrailingZeros();
  72.   }
  73.  
  74.   Numerics::Show();
  75. }
  76.  
  77. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  78. //
  79. // EventHandler()
  80. //
  81. // Handles the events
  82. //
  83. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  84.  
  85. int DiaBcd::EventHandler(int Event)
  86. {
  87.   int ReturnEvent=EventValidation(Event);
  88.  
  89.   if (ReturnEvent==CompleteEvent)
  90.   {
  91.     double CovertedValue=atof(Numerics::Value);
  92.     Value=bcd(CovertedValue);
  93.   }
  94.  
  95.   HighLight();
  96.  
  97.   return ReturnEvent;
  98. }
  99.