Incremental changes, updates, and bug reports:
| Version 6.1.6 | 04/30/10 |
| Version 6.1.5 | 03/06/10 |
| Version 6.1.4 | 01/14/10 |
| Version 6.1.3 | 11/11/09 |
| Version 6.1.2 | 10/30/09 |
| Version 6.1.1 | 10/15/09 |
| Version 6.1.0 | 10/10/09 |
| Version 6.0.6 | 09/23/09 |
| Version 6.0.5 | 07/04/09 |
| Earlier 6.n.n | 03/06/09 |
Modified Message Form to address some anomalous behavior:
Local menu in "multi-record" mode changes to reflect valid options
Dialog prompts user when switching between single- and multi-record modes
Implemented work-around when using Navigator button to delete multiple records
User can enter edit mode using "F2" key or by double-clicking field with mouse
User can press "Escape" key once to exit edit mode, or twice to close the form
Added support for Read-Only files, which was dropped in the transition to .cds files.
Minor code changes (general code clean-up) to Message Form.
Added global variable "GridWidth" to control width of grid lines on screen,
using default value of 1 for Win2K/XP; 2 for Win Vista and Win 7.
Added global var LegacyImage to allow user to force image handling
using legacy code (supports some pdf printer drivers better than WIC).
LegacyImage can be invoked from the command line using "/G" switch or
from an .ini file using Boolean key "LegacyImage" - [Config] section.
Modified ImgDlg.Title to display "(legacy code)" when not using WIC;
changed FileIni dialogs to display "(subset)" when
Added labels to display image size in pixels in ImgForm for scaling;
added message to advise user when non-scaled image too large to print.
Changed graphics-handling code to the new Microsoft Windows Imaging Component, adding
support for TIFF and GIF graphics in printed calendar headers. Supported formats are:
JPG, PNG, BMP, GIF, and TIFF.
The Windows Imaging Component is only supported in Windows XP or
newer, so Windows 2000 users are still limited to JPG, PNG, and BMP files (using legacy code).
Bug Fix: the "File | Save As" menu option placed the back-up file in the wrong location under a specific set of circumstances; fixed. Also, calendar now refreshes when validation code is applied.
Update: refined gesture support for annual (pop-up) calendar and added gesture support to base calendar; calendar refreshes after gesture.
Update: recompiled in Delphi 2010; added gesture support to annual (pop-up) calendar.
Update: modified image-handling code for better persistence between multiple calls to
the Image dialog. Images now persist when the
Initial Release Candidate; baseline release for Version 6.
New features for Version 6:
1. "Load subset" option: keep current calendar size and font settings when opening a shift schedule (.ini file).Earlier 6.n versions were pre-release and only available to beta testers.
Update: Included code to provide minimal support for Windows Vista; a Vista-compatible version is now available.
Update: cleaned up code for on-screen display and for printing following repair of the Message Font bug reported by Paul Zavala. The "Autoscale" option under the "Settings" now consistently uses the "maximized" font settings, and font settings are properly saved.
Bug Fix: Message font failed to update and did not save in full-screen mode.
Thanks to Paul Zavala for bringing this to our attention.
Update: set up conditional compilations for Vista and non-Vista versions.
(Note: this version was only online briefly)
Update: Modified all units to add minimal Vista compatibility
- Modified code reporting user's application data directory
- Deprecated command-line options for printed graphic files
Update: modified path code to activate help file so help is reliably called from working directory for message and .ini files.
Update: added support for .png graphics in printed calendars (monthly, annual, and organizer pages); now supports .jpg, .png, .bmp.
Update: added basic support for platoon colors to be specified in
RGB for a wider range of colors. Entry must be in hexadecimal; the
required format is $RRGGBB.
Note: CalMod does not allow
selection of colors in RGB at this time, although it will display
them correctly.
Bug Fix: Addition of the "Images dialog caused anomalous behavior in the "Print Options" form when the "Images" form was closed.
Update: Added user-specified images to Monthly and Annual calendars, and added a dialog (accessed from Print | Options menu item) to allow the user to interactively select and save images for each type of calendar. See Printing Images on Calendars for details.
Update: Added "Semi-Annual" check box to the File | Print Options dialog.
Update: Added the ability to place user-specified image on Organizer calendars; filename read from .ini file. Note: version 5.4.0 had very limited distribution.
Update: Added Day-of-Week (DOW) font option to Settings menu.
Update: Modified Font Dialog code to distinguish the handling of font settings between normal and maximized window states.
Update: Modified header print routine to scale month name and day-of-week fonts to ratios of font heights to panel height.
Update: Added user alert message when turning printer font scaling on or off.
Update: Changed vertical alignment of month name to top of panel.
Update: Modified Print Options form to make default checkbox settings consistent with window state.
Update: Modified DrawCell routine to display messages in inverse color if font color is the same as the highlighted cell color.
Update: changed method for calling help file.
Update: Added the ability to print semi-annual (six-month) calendars.
Update: The number of rows and columns in annual and semi-annual calendars is now dictated by the width and height of the print region as defined by the user (when setting the print margins). See Printing Annual Calendars for details.
Update: Added support for daily organizer pages in printer landscape mode.
Minor change: Commented out "Validation code expired" message on startup.
Maintenance Release: Consolidated declarations, optimized code in inner loops of print routines, moved common code into new procedures, and revisited font scaling (again).
Update: Refined v5.1.0 code that prints messages/events on Organizer pages; removed some obsolete code.
Update: Added code to print messages/events on Organizer pages.
Bug Fix: Report Form - modified Interval edit control to reject an interval value of zero.
Update: modified code for local menu options "New Record" and "Edit Record" to be consistent with the code changes in version 5.0.1 (when the user double-clicked on the calendar).
Bug Fix: Print Options - page title edit control remained visible when not an option.
Bug Fix: Print Options - event handler failed to distinguish between "T" and "Alt-T".
Bug Fix: database error if user clicked on "Close Window" button after editing.
Bug Fix: current record pointer assigned to wrong record when creating a new record by double-clicking on a date in the calendar.
The above changes in behavior appear to be related to the new compiler.
Major Version Update
This version is compiled in Borland Developer Studio (Delphi) 2006, and it features several significant improvements:
- Page Setup dialog now controls printer margins, orientation, and paper size.
- Message file handling code added to FormClose event for improved reliability.
- Updated online help from WinHelp to HTMLHelp.
Program Update: Modified Print Form labels and handling of Day-of-week option.
Bug Fix: Day-of-week labels were not printed when on-screen form was maximized.
Work-around: for some combinations of screen resolutions and font sizes, the dialogs don't resize correctly. To address this issue, if the user resizes the "Print Options" dialog, the "Message" dialog, or the "Repeat Event" dialog, then executes a Save | Settings command, the information is saved to the Registry and used on subsequent program startup.
Program Update: modified startup validation code; program now prints "ShiftCalŽ" in red next to platoon legend if current date is within thirty days of expiration date.
Program Update: added accelerator key Alt-T to Print Options form; sets focus to "Title" edit control.
Modified pop-up menu captions in Message Form.
Bug Fix: calendar header (monthname) on wallet calendars did not scale correctly when "Show Day of Week" option was selected in print options.
Consolidated initialization code with CalMod to better support changes in release 4.2.0.
Modified initialization code and FormCreate to address variations in data directory under different versions of Windows: former practice of keeping data files in program directory is not appropriate in a shared environment, where users may not have read/write access to the program directory.
Major program update: although the program directory remains the same, we have changed the default location for data (.ini and .dbf) files to the user's "Application Data" directory tree. ShiftCal has grown from an application that was once distributed as a zip file on a floppy disk to a 7-MByte installation. Although the program still supports users who prefer to keep all of their files in one directory, we increasingly have to support users who do not have write access to the program directory. The new default data directory is \Erickson\Shiftcal under the user's "Application Data" directory.
Added support for Read-Only files, which can be opened and browsed, but cannot be edited or merged. The term "Read-Only" is applied to the filename in the title bar of the message form, the navigation bar does not display edit buttons, and the user cannot select "Edit" mode (e.g. form remains in record-select or "multi" mode).
Re-implemented user setting ResizeOnFileIni, which, if set to false, does not resize calendar when the user opens a new .ini file (this option requires the user to manually modify the primary .ini file).
Program Update: Added scroll wheel support to on-screen annual calendar; return to the current date by double-clicking on the calendar.
Bug Fix: User-specified form sizes not consistently applied; moved code from FormCreate to FormShow.
Bug Fix: Print Option tab incorrectly set to "Monthly" whenever an .ini file was opened.
Bug Fix: Print Option "Wallet" tab displayed wrong messages in edit controls if user strings were empty.
Bug Fix: Calendar header failed to resize correctly when day-of-week labels were not displayed in normal and fullscreen mode.
New Feature: added "Straight Paper Path" option to foldable calendar option.
New Feature: Added foldable calendar option to the "Monthly" print option dialog.
Update: Reviewed all printing and scaling code and optimized print scaling.
Update: Added date validation to Print Options, with option of user override.
Bug Fix: color setting in font dialogs defaulted to gray.
New Feature: enabled "Organizer" tab on Print Options dialog; added "From" and "To" date for printing organizer pages (currently only prints in Portrait mode).
New Feature: enabled "Apply" button in font dialogs so user can see the effect of a selected font, then select it by clicking "Ok" or restore the original font by clicking "Cancel".
Update: revisited font settings in wallet calendars; "Wallet" font applies unless user selects "Autoscale", in which case user-specified Title and Header fonts are scaled to fit.
Update: modified code that sets and retrieves values from edit controls in "Wallet" tab of Print Options dialog; reduced count from six to five.
Bug Fix: command-line switch for alternate message file failed to open specified file.
Bug Fix: change in TzVDraw code (version 3.9.8) resulted in a bug in the "Save selected records" local menu option in the Message form.
Bug Fix: messages were not updated if user clicked on leading/trailing days.
Update: modified wallet calendar print routine; users of versions prior to 3.6 may need to change the settings in their .ini file to keep calendars centered.
Bug Fix: modified screen draw cache code to fix File Open bug
Update: added routine which copies records to cache (used to update screen display); removed unnecessary/redundant code.
Bug Report: catastrophic failure during File Open and Merge operations.
Status: fixed in version 3.9.8
Bug Report: error message when user attempts to set calendar font with no default printer selected.
Bug Fix: Modified StayOnTop code to prevent setting StayOnTop when form is maximized.
Update: changed order of several virtual file calls.
Update: removed redundant screen update code.
Update: removed unnecessary call to SetFocus.
Bug Fix: Corrected spelling error in hint for annual calendar speedbutton.
Bug Fix: Leading/trailing messages did not turn off with leading/trailing dates.
Bug Fix: Removed call to SetFocus which moved calendar to top of z-order over message dialog.
Update: Set value of PixelsPerInch for message form to fixed value for non-standard screen resolutions.
Update: Modified annual calendar so display of day-of-week labels is consistent with user setting.
Bug Fix: Changed annual calendar display to modal so the timer handler added in version 3.9.4 would not move the main form to the top of the z-order when triggered.
Update: Added new variables for printer offsets for wallet calendars.
Update: Changed BCOffset default value to zero
Update: Performed minor modifications to form headers.
Bug Fix: Changed computation of "To" date in Repeat form.
New Feature: Added WM_TIMER handler to update the calendar when the date rolls over at midnight. Update only applies if the calendar is displaying current date (i.e. will not seize control of the calendar if the user has selected an alternate date).
Bug Fix: added hint to annual calendar speed button on header.
New Feature: Added new color name variables and support for "named-color" platoons.
Update: Modified case statements to provide named-color support.
Bug Fix: applied upper and lower date limits to annual calendar; initial release would eventually fail to display dates.
Bug Fix: modified day number routine to switch to monochrome on dates before StartDate.
New Feature: Modified annual calendar to save the user-specified date when scrolling (same behavior as monthly calendar). User can:
- Set the date to "today" by pressing the "Home" key
- Set date to January 1 by pressing "Control-Home"
- Return to user-specified date by pressing the "End" key
Bug Fix: DrawHeader routine failed to update font style.
Update: Modified code that draws day numbers, including font scaling code.
Update: Modified sizing code for annual calendar to retain user's settings.
Update: Removed redundant code from draw routines for header and gird.
Update: Modified code for repeating events to prevent duplicate entries.
Update: Saves record number to return to original record when creating duplicates.
New Feature: Added scrolling support to the annual calendar; user can change the months display by pressing [Page Up], [Page Down], or the arrow keys.
New Feature: Added a "ShowYear" Boolean option in the .ini file to display just the monthname or the month and year.
New Feature: Added an annual calendar display, keyed to the month and year of the main calendar. Annual calendar is activated by pressing function key [F2] or [F10], by entering Control-A, or by clicking on the Annual Calendar buttton on the calendar header (button contains a grid-like glyph).
New Feature: The annual calendar can display either a 3x4 grid (portrait) or a 4x3 grid (landscape); the display automatically switches between landscape and portrait as the form is resized.
Bug Fix: Clicking on the "Today" button set the calendar to today's date, but did not set an internal variable.
Update: Modified code to display the Help file (currently using Help_ForceFile).
Update: Changed program messages and web site to remove references to "Shift Calendar" due to alleged trademark infringement.
Bug Fix: Validation Code error message was displayed on startup.
New Feature: Added "Repeat message" dialog to facilitate setting of recurring events.
New Feature: Added "File | Ini Files" menu option (opens .ini files by default).
Bug Fix: MonthName panel (sometimes) failed to resize in Autoscale mode.
Update: Finalized support for numbered platoons (e.g. Platoon 1).
Update: Added accelerator assignments to check boxes in Print Setup form.
Update: Removed redundant code from Print Setup form (FormClose call).
Update: Moved FScaleX code into conditional statement setting font scaling.
Update: Modified wallet calendar code to enable printing of "rotated" calendars.
Update: Modified wallet calendar code to use Title font if AutoscaleFont is true.
Update: Turned ScalePrnFont off during printing of wallet calendars (needs work).
Bug Fix: BCOffset was not implemented on the second side of wallet calendars.
New Feature: Added support for numbered platoons (e.g. Platoon 1); same enhancement to CalMod.
New Feature: Added rudimentary ability to print "rotated" wallet calendars; feature accessed by printing in landscape mode.
Bug Fix: When using "File | Save As" to overwrite an existing file, the old file was not replaced, even when the user confirmed the overwrite.
Bug Fix: Error in Printer.Title prevented name of file from appearing in Print Manager.
New Feature: Added "tray icon" support so program can be minimized or closed to the System Tray. These options are controlled by entries in the .ini file; see Advanced Settings.
Update: Replaced now-obsolete calls to printer escape routines with calls to GetDeviceCaps for information about printer capabilites.
Update: Changed references to printer dpi to separate x/y dpi values for printers that support different resolutions in the horizontal and vertical axes.
Update: Changed default behavior of "Show Grid" on startup to true.
Bug fix: Title font failed to resize correctly if height of Title Font was greater than Title panel.
Bug fix: Font scaling code for page header could potentially decrement a negative number.
Update: Removed code in the "Main" and "About" modules rendered obsolete by registration of domain name www.shiftcal.com.
Update: Modified color font control to include Windows extended color set (e.g. Money Green).
Update: Modified print routine to optionally include a platoon color legend.
Update: Modified Print | Options dialog to control active/inactive state of edit controls.
Update: Rewrote font scaling code in print routines: cleaned up resize code (replacing loop with scaling algorithm) and removed redundant references. Changed most font.size references to font.height.
Update: Modified day-of-week font scaling to be consistent with other screen font scaling routines.
Update: Rewrote printing routines for Title and Header to be consistent with scaling algorithm used for printing day numbers.
Update: Modified AutoScale property to compute height of font based on ratio of form height to screen height.
Update: Modified About Box to display domain name message "www.shiftcal.com".
New Feature: Added code to write printable limits of physical page (in pixels) to the .ini file; useful for customizing offsets.
New Feature: Added user-defined "asterisk" support from printed calendar to screen display.
Update: Improved traversing of linked list containing messages: if multiple messages do not fit vertically, skip remaining nodes in linked list.
Update: Reviewed printing code to reconcile ScalePrnFont and AutoScaleFont.
Bug fix: Conditional statements controlling display of grid and centering of dates did not correspond to the user inputs.
Bug fix: Grid failed to print on annual calendar when maximized.
Bug fix: Dates were centered on printed annual calendar regardless of user setting.
Bug fix: Message font changed size when AutoScale was checked or unchecked with form maximized (font scaling issue).
Update: Modified code to recompute AutoScale font sizes for various windowstates (e.g. wsNormal, wsMaximized).
New Feature: Added AutoScale Font option to Settings menu; scales fonts to appear similar to full-screen display.
Update: Removed redundant screen update commands.
New Feature: Added support for up to six platoons (specifically for the United States Postal Service).
Update: Moved windowstate code to FormPaint routine to correct response to resizing.
Update: Removed local variables in OnDrawCell routine; replaced with calls to DefaultColWidth and DefaultRowHeight.
Update: Separated code that displays the monthname and the day-of-week labels from the OnDrawCell routine to minimize the number of times they are called.
Update: Added checkbox to control printing of day-of-week labels in Print Options dialog.
Update: Changed IncDate calls in annual calendar print routine to IncDateTrunc.
Update: Modified printing of monthly calendar to scale fonts to be similar to full-screen display.
New Feature: Added accelerator key assignment to "Today" button, which required a call to SetFocus.
Update: Removed redundant linked list code from Message Form ShowForm routine.
Update: Separated some FormResize code for placement in CanResize routine.
Update: Moved some initialization code to new procedure that applies contents of an .ini file.
Update: Added code to compute left-over pixels when resizing.
Update: Program modified to use TDrawGrid for the calendar array.
Update: Program modified to use Topaz Virtual Files (linked lists emulating DBase files) for messages.
Update: Added code to display font color based on platoon on duty.
Update: Added user-defined "ellipsis" character for messages too wide to fit in calendar grid square.
IPL Version 3: Included three variations on the calendar grid, the user draw routine, and setting colors.