BCG
Time Controls
This article was contributed by Stas Levin
Download Source Code and Example
Set of four time ActiveX controls:
Installation notes:
Date/Time Control Properties and Methods:
Name | Description |
Date Date | Date/Time value |
DATE MinDate | Min. allowed date |
DATE MaxDate | Max. allowed date |
boolean CheckButton | Show check box |
boolean DropCalendar | Show Drop-down calendar arrow |
boolean ShowDate | Show control's date part |
boolean ShowTime | Show control's time part |
boolean SpinButton | Show up/down arrows |
boolean WantReturn | If WantReturn is true, control catches ENTER/ESC keys and fires OnEnter/OnCancel events |
void SizeToContent() | Adjust control size according to attributes. Should be called in OnInitDialog (VB - Form_Load) |
Date/Time Control Events:
Name | Description |
OnDateChanged | Indicates that Date property was changed |
OnSetFocus | Indicates that control received focus |
OnKillFocus | Indicates that control lost focus |
OnEnter | Enter key was pressed (fired if WantReturn property is true) |
OnCancel | Esc key was pressed (fired if WantReturn property is true) |
Calendar Control Properties and Methods:
Name | Description |
boolean MultiplySelection | Allow multiply days selection |
boolean AbsoluteSelectionMode | When this property is true, the selected days are saved when user changes the month; otherwise, control saves the weekdays |
OLE_COLOR BackgroundColor | Calendar background color |
OLE_COLOR ForegroundColor | Calendar foreground color |
OLE_COLOR SelectionBackgroundColor | Background color of the selected days |
OLE_COLOR SelectionForegroundColor | Foreground color of the selected days |
OLE_COLOR LightColor | 3-d edges light color |
OLE_COLOR ShadowColor | 3-d edges shadow color |
void SetSelectedDay(short iDay) | Select the day (1-31) |
void ClearAllSelections() | Clear all day selections |
boolean IsDaySelected(short iDay) | Is day (1-31) selected? |
boolean MarkDay(short iDayNum, boolean bMarked) | Mark the specific day (marked day is displayed as bold+underline) |
void UnMarkAllDays() | Clear all day marks |
Calendar Control Events:
Name | Description |
OnSelectionChanged | Indicates that selection was changed |
OnDateChanged | Indicates that date was changed (relevant if MultiplySelection property is false) |
OnMonthChanged | Indicates that month/year was changes |
Duration Control Properties and Methods:
Name | Description |
long TotalSeconds | Duration |
boolean SpinButton | Show up/down arrows |
BSTR DaysLabel | Text appeares after the days number (default: "Day(s) ") |
BSTR HoursLabel | Text appeares after the hours number (default: ":") |
BSTR MinutesLabel | Text appeares after the minutes number (default is empty) |
boolean ShowDays | Show number of days |
boolean ShowHoursMinutes | Show hours/minutes part |
void SizeToContent() | Adjust control size according to attributes. Should be called in OnInitDialog (VB - Form_Load) |
Duration Control Events:
Name | Description |
void OnDurationChanged(long lTotalSeconds) | Indicates that duration was changed |
Time Intervals Control Properties and Methods:
Name | Description |
boolean MergingIsAllowed | Time intervals automerge is allowed |
boolean MultiplySelection | Multiple selection is allowed |
OLE_COLOR IntervalColor | Interval background color |
OLE_COLOR IntervalTextColor | Interval foreground color |
OLE_COLOR BackgroundColor | Control background color |
OLE_COLOR ForegroundColor | Control foreground color |
boolean AddInterval(DATE dateFrom, DATE dateTo, short iStatus) | Add a new time interval (remark: date part of DATE-type parameters are ignored). Interval's color will be defined according to interval's status (see SetStatusColor method) |
boolean ChangeInterval(short iIndex, DATE dateFrom, DATE dateTo, short iStatus) | Changes the specific time interval |
boolean RemoveInterval(short index) | Remove the specific time interval |
void RemoveAllIntervals() | Remove all time intervals |
short GetIntervalsCount() | Returns intervals count |
boolean GetInterval(short iIndex, DATE* dateFrom, DATE* dateTo, short* iStatus) | Obtain the specific interval data |
boolean SetIntervalStatus(short iIndex, short iStatus) | Set the specific interval status. Interval's color will be defined according to interval's status (see SetStatusColor method) |
void SetStatusColor(short iStatus, OLE_COLOR color) | Set the specific status's color. All time intervals with the given status will be drawn with this background color |
short GetCurSel() | Returns selected interval number or (-1) if no intervals is selected |
boolean SetCurSel(short index) | Select the specific interval |
Time Intervals Control Events:
Name | Description |
OnAddInterval(short index, DATE FromTime, DATE ToTime) | New time interval was added by user |
OnChangeInterval(short index, DATE FromTime, DATE ToTime) | Time interval was moved by user |
OnRemoveInterval(DATE FromTime, DATE ToTime) | Time interval was removed by user |
OnSelectionChanged(short index) | Selection was changed |
Copyright
These controls are freeware. You can use them in any application. You can't use this code in software development library and/or redistribute the source code without author's permission.
Requirements
MS Visual C++ 5.0 with the SP3 This code can be used WITHOUT ANY WARRANTIES on your own risk. You can send bug reports and suggestions to Stas Levin.