home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / borland / cb / setup / cbuilder / data.z / CALENDAR.H < prev    next >
C/C++ Source or Header  |  1997-02-28  |  4KB  |  105 lines

  1. //---------------------------------------------------------------------------
  2. // Borland C++Builder
  3. // Copyright (c) 1987, 1997 Borland International Inc.  All Rights Reserved.
  4. //---------------------------------------------------------------------------
  5. #ifndef Calendar_HPP
  6. #define Calendar_HPP
  7.  
  8. #include <Menus.hpp>
  9. #include <SysUtils.hpp>
  10. #include <Grids.hpp>
  11. #include <StdCtrls.hpp>
  12. #include <Graphics.hpp>
  13. #include <Forms.hpp>
  14. #include <Windows.hpp>
  15. #include <Messages.hpp>
  16. #include <Controls.hpp>
  17. #include <Classes.hpp>
  18. #include <System.hpp>
  19.  
  20. typedef short TDayOfWeek;
  21.  
  22. class TCalendar : public TCustomGrid
  23. {
  24. private:
  25.   TDateTime FDate;
  26.   Integer FMonthOffset;
  27.   TNotifyEvent FOnChange;
  28.   Boolean FReadOnly;
  29.   TDayOfWeek FStartOfWeek;
  30.   Boolean FUpdating;
  31.   Boolean FUseCurrentDate;
  32.   AnsiString __fastcall GetCellText(int ACol, int ARow);
  33.   Integer __fastcall GetDateElement(Integer Index);
  34.   void __fastcall SetCalendarDate(TDateTime Value);
  35.   void __fastcall SetDateElement(int Index, int Value);
  36.   void __fastcall SetStartOfWeek(TDayOfWeek Value);
  37.   void __fastcall SetUseCurrentDate(bool Value);
  38.   bool __fastcall StoreCalendarDate();
  39.  
  40. protected:
  41.   virtual void __fastcall Change();
  42.   void __fastcall ChangeMonth(Integer Delta);
  43.   virtual void __fastcall Click(void);
  44.   virtual int __fastcall DaysPerMonth(int AYear, int AMonth);
  45.   virtual int __fastcall DaysThisMonth();
  46.   virtual void __fastcall DrawCell(long ACol, long ARow, const TRect &ARect,
  47.     TGridDrawState AState);
  48.   virtual bool __fastcall IsLeapYear(int AYear);
  49.   virtual bool __fastcall SelectCell(long ACol, long ARow);
  50.   void __fastcall WMSize(TWMSize& Message);
  51.  
  52. public:
  53.   __fastcall virtual TCalendar(TComponent *AOwner);
  54.   __property TDateTime CalendarDate = {read=FDate, write=SetCalendarDate, stored=StoreCalendarDate};
  55.   __property AnsiString CellText[Integer ACol][Integer ARow] = {read=GetCellText};
  56.   void __fastcall NextMonth();
  57.   void __fastcall NextYear();
  58.   void __fastcall PrevMonth();
  59.   void __fastcall PrevYear();
  60.   virtual void __fastcall UpdateCalendar();
  61.  
  62. __published:
  63.   __property Align ;
  64.   __property BorderStyle ;
  65.   __property Color ;
  66.   __property Ctl3D ;
  67.   __property Integer Day = {read=GetDateElement, write=SetDateElement, stored=false, index=3, nodefault
  68.     };
  69.   __property Enabled ;
  70.   __property Font ;
  71.   __property GridLineWidth ;
  72.   __property Integer Month = {read=GetDateElement, write=SetDateElement, stored=false, index=2, nodefault
  73.     };
  74.   __property ParentColor ;
  75.   __property ParentFont ;
  76.   __property ParentShowHint ;
  77.   __property PopupMenu ;
  78.   __property Boolean ReadOnly = {read=FReadOnly, write=FReadOnly, default=0};
  79.   __property ShowHint ;
  80.   __property TDayOfWeek StartOfWeek = {read=FStartOfWeek, write=SetStartOfWeek, default=1};
  81.   __property TabOrder ;
  82.   __property TabStop ;
  83.   __property Boolean UseCurrentDate = {read=FUseCurrentDate, write=SetUseCurrentDate, default=1};
  84.   __property Visible ;
  85.   __property Integer Year = {read=GetDateElement, write=SetDateElement, stored=false, index=1, nodefault
  86.     };
  87.   __property OnClick ;
  88.   __property TNotifyEvent OnChange = {read=FOnChange, write=FOnChange};
  89.   __property OnDblClick ;
  90.   __property OnDragDrop ;
  91.   __property OnDragOver ;
  92.   __property OnEndDrag ;
  93.   __property OnEnter ;
  94.   __property OnExit ;
  95.   __property OnKeyDown ;
  96.   __property OnKeyPress ;
  97.   __property OnKeyUp ;
  98.  
  99.   BEGIN_MESSAGE_MAP
  100.     MESSAGE_HANDLER(WM_SIZE, TWMSize, WMSize);
  101.   END_MESSAGE_MAP(TCustomGrid);
  102. };
  103.  
  104. #endif  // Calendar_HPP
  105.