home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / Vcl / calendar.h < prev    next >
C/C++ Source or Header  |  2000-02-01  |  4KB  |  106 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 PACKAGE 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.   DYNAMIC void __fastcall Click(void);
  44.   virtual int __fastcall DaysThisMonth();
  45.   virtual void __fastcall DrawCell(int ACol, int ARow, const TRect &ARect,
  46.     TGridDrawState AState);
  47.   virtual bool __fastcall IsLeapYear(int AYear);
  48.   virtual bool __fastcall SelectCell(int ACol, int ARow);
  49.   void __fastcall WMSize(TWMSize& Message);
  50.  
  51. public:
  52.   __fastcall virtual TCalendar(TComponent *AOwner);
  53.   __fastcall virtual TCalendar(HWND Parent): TCustomGrid(Parent) {};
  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.   virtual int __fastcall DaysPerMonth(int AYear, int AMonth);
  62.  
  63. __published:
  64.   __property Align ;
  65.   __property BorderStyle ;
  66.   __property Color ;
  67.   __property Ctl3D ;
  68.   __property Integer Day = {read=GetDateElement, write=SetDateElement, stored=false, index=3, nodefault
  69.     };
  70.   __property Enabled ;
  71.   __property Font ;
  72.   __property GridLineWidth ;
  73.   __property Integer Month = {read=GetDateElement, write=SetDateElement, stored=false, index=2, nodefault
  74.     };
  75.   __property ParentColor ;
  76.   __property ParentFont ;
  77.   __property ParentShowHint ;
  78.   __property PopupMenu ;
  79.   __property Boolean ReadOnly = {read=FReadOnly, write=FReadOnly, default=0};
  80.   __property ShowHint ;
  81.   __property TDayOfWeek StartOfWeek = {read=FStartOfWeek, write=SetStartOfWeek, default=1};
  82.   __property TabOrder ;
  83.   __property TabStop ;
  84.   __property Boolean UseCurrentDate = {read=FUseCurrentDate, write=SetUseCurrentDate, default=1};
  85.   __property Visible ;
  86.   __property Integer Year = {read=GetDateElement, write=SetDateElement, stored=false, index=1, nodefault
  87.     };
  88.   __property OnClick ;
  89.   __property TNotifyEvent OnChange = {read=FOnChange, write=FOnChange};
  90.   __property OnDblClick ;
  91.   __property OnDragDrop ;
  92.   __property OnDragOver ;
  93.   __property OnEndDrag ;
  94.   __property OnEnter ;
  95.   __property OnExit ;
  96.   __property OnKeyDown ;
  97.   __property OnKeyPress ;
  98.   __property OnKeyUp ;
  99.  
  100.   BEGIN_MESSAGE_MAP
  101.     VCL_MESSAGE_HANDLER(WM_SIZE, TWMSize, WMSize);
  102.   END_MESSAGE_MAP(TCustomGrid);
  103. };
  104.  
  105. #endif  // Calendar_HPP
  106.