PortCal - Portfolio Calendar for Windows 3.0 Version 2.1 Created Using Microsoft Visual Basic First the nasty stuff: This program is freeware and may be freely copied. There is no warranty, expressed or implied, on either this program or the original Microsoft sample code which may be included within it. Now that that's out of the way -- I have found that the Portfolio makes a wonderful peripheral to my desktop PC. I do work on the PC, and when I have to leave my office, I simply take important files with me on the PF. I like to use the built-in applications on the Portfolio, as they work fairly well, and they take up zero RAM on my limited file storage space. However, I could not find any program that will let me use the file(s) maintained by the Portfolio's calendar program. There are alot of nice calendar programs for the PC, but none were quite what I wanted. I wanted, well, the Portfolio's calendar under Windows. So I wrote one. This program was written using Microsift Visual Basic. All Visual Basic programs require the file VBRUN100.DLL. If you don't have Visual Basic, this file can be obtained from the Visual Basic Library in the Microsoft Languages Forum on CompuServe. (The file should be in the same directory as Windows itself.) To install PortCal in Windows: (1) Copy PORTCAL.EXE to the WINDOWS subdirectory (or other desired directory) (2) Open the Program Manager, and select the Program Group that you wish to contain PortCal (3) Select New... from the file menu (4) Select "Program Item" and click OK (5) In the Description field, type "Portfolio Calendar" (6) Click "Browse", and use the dialog box to find PORTCAL.EXE. Click OK (7) The pathname and filename for PortCal should now be in the Command Line field. Click on OK to install the PortCard icon. (8) The Portfolio Calendar icon should now be in your selected group. (You may have to scroll the window around a bit to find it.) (9) If you relocate the Portfolio Icon within the window, and you wish to save that position, select Save Changes the next time you exit Windows Further information on installing programs can be found in the Microsoft Windows User's Guide To have Portcal launch automatically when a .DRY file is "run": (1) Use the File Manager to locate a .DRY file. Click once on the file to highlight it. (2) Select "Associate..." from the file menu. (3) Type PORTCAL.EXE in the dialog box. (If PORTCARD.EXE is in a directory not in your PATH, then you will have to type the full pathname for PORTCARD.) (4) Click OK. Further information on the File Manager can be found in the Microsoft Windows User's Guide To get Windows to automatically launch PortCal upon startup: (Note: It seems silly to autolaunch PortCal without autoloading a file, so these instructions assume you want to do that.) (1) If you have not performed the previous steps, do them now. (2) Use the Windows Notepad to open the file WIN.INI. It will be in your Windows directory (3) Fairly early in the file, you will find two lines, reading: run= load= (4) After the word run=, put a blank and the name of the .DRY file you want loaded. If there is already something after run=, just tack the name of your .DRY file on the end of the line. Be sure to have only one blank between filenames, or Windows will report an error on startup. If your .DRY file is not in your path, be sure to use a full pathname. (5) If you want PortCal to startup as an icon, use the load= line instead of the run= line. Example: I keep my calendar on a memory card, and have a PC Card Drive installed as drive D:. I want PortCal to autostart and load that file, so my WIN.INI file has the following: run= nwpopup.exe d:\schedule.dry Notice that there was already a file on the line (nwpopup.exe), so I put mine on the end. Also note that in the above example, if I do not have a card in the card drive when I start Windows, Windows will report a system error on drive D. I can insert the card at that time, or tell Windows to "cancel" my request, in which case PortCal will not be loaded. If you've done the above properly, the next time you start Windows, PortCal will automatically run. Further information in the WIN.INI file can be found in the file WININI.TXT, which was copied to your WINDOWS directory when you installed Windows. ----------------------------- To use PortCal: Start it like any other Windows Program. The main Window will display. On the left is the calendar display, and on the right is the edit area and the event display. The Calendar Display On the left is a one-month calendar display. Above the calendar is listed the Month and Year displayed. Both month and year are pull-down menus. You can use them to display any month. (The year menu always ranges from one year in the past to 9 years in the future.) At the top of each menu is the entry "(now)", which will automatically switch the view to today's date. In the calendar, days with events scheduled are underlined. Note that recurring events will only show up as the next "recurrence" time. (This is the same as the Portfolio) On the right side of the screen is the daily display. The currently displayed date is shown. If there is a "Headline" for that day (An event with a date but no time), it will show up next to the date. There can be only one headline per day, the same as the Portfolio. Underneath the Headline/Date display is the event display. If you have any events for that day, they will show up here. Unlike the Portfolio, it will only show one day's events. (I did that because I like it better that way.) All events will be in the form: @d 13:40 Event Description This is exactly like the Portfolio's display, except that an "@" symbol is used to indicate an alarm instead of the musical note. The letter indicates a daily event. The letters are the same as the Portfolio: d - daily w - weekly n - weekday (non-weekend) m - monthly y - yearly The standard windows controls (minimize, maximize, etc) are in their usual places. You can resize the window to any size. There is a "minimum size", and if yo try to size the window smaller, it will snap back to it's smallest allowed size. The text boxes on the right side of the window will resize to accomodate the new window size. If there are more events for a date than will fit in the event box, a vertical scroll bar will appear in the event box. Above the date display area is the edit area. It consists of an alarm checkbox, a recurring pull-down menu, and an edit box. To select a date for display: Type the date in the edit box and press Enter. -or- Use the mouse and click on the date in the calendar. (The currently selected day is in italics). If you click on a date at the end of the previous month or the beginning of the next month, the calendar will change to display the month you clicked. -or- Press the Home key to display today's date. To enter a new headline: Type the headline in the edit box and Press Enter. The headline will be entered for the displayed date. You can also use the form: mm/dd/yy headline The date will switch to the selected date, and the headline will be entered. (The date format varies depending on your Control Panel settings.) To enter a timed event: Do the same as the headline event, but specify a time. For example: 13:00 Have lunch with Don will enter the appointment at 1pm of the displayed date. 6/30 3p Report due will enter the appointment at 3pm on June 30 of the current year. In most cases, if you type an entry without hitting Enter, then click the mouse on the headline box, the event will be entered for you. To specify an alarm event, click the Alarm checkbox before completing your entry. Headlines cannot have alarms. To specify a recurring event, use the Recurring list box to select your recurring interval before completing your entry. Both headlines and events can be recurring. To modify an existing event: Double-click on the headline or event. It will be copied to the edit area. Make your changes and click the headline window (or press Enter) To delete an event For both headlines and time events, you can double-click on the event to bring it into the edit window. Then erase the text and Press Enter. For time events only, you can single-click the event to highlight it, then press the Delete key. To delete old events Select Delete Old... from the Edit menu. A dialog box will appear, allowing you to enter an "old entry" date. (The date defaults to two weeks prior to today's date.) Enter the date and click OK. All non-recurring events older than the date specified will be deleted. Moving an entry: Double-click the entry (single-clicking also works for time entries), and select Move from the Edit menu. Fill in the new date and time and click OK. (Headlines will have no time.) -or- If you only want to change the date (but not the time), click once the event or headline you wish to change. A small black box will appear in the narrow strip between the event display and the calendar display. Move the mouse over the box, and press and hold the left mouse button. Drag the box over the new date in the calendar and release the mouse button. The entry will be moved to the new date. If you hold down the Ctrl key while you do this, the entry will be copied instead of moved. Alarms Alarms will go off as long as PortCal is running. A dialog box will appear with the date, time, and event. Press OK to dismiss the box. Searching You can search for an event by its text. From the search menu, select Find. Type in the string you want to find. Upper/lower case is not important. Use the radio buttons to select the starting point of the search. (Earliest point in time, or strting from the displayed date.) Press OK. If you want to keep searching, select Find Again from the Search menu (or press F3). You can also view the entire list of events (much like the Portfolio's display). Simply select List from the Search menu, and a new window will open with the entire list of events. Double-click event of your choice, and you will return to the main window with your selected day as the day shown in the event area. Menus File / New - Clears the calendar to start anew. File / Open... Brings up a dialog box to select a file. The file will be loaded, wiping out whatever's there. File / Refresh - Re-reads the current file from disk, replacing whatever is in memory. Handy for PC Card Drive owners who yank the card out of their PCs to take it into a meeting. File / Save - saves the current file. If it is a new file, it works the same as "Save As..." File / Save As... Let's you specify a filename for saving. File / Exit - Quits Portcal Edit / Cut, Copy, Paste, Delete, Select All - Standard Clipboard functions. Only available while using the Edit Box. Edit / Move - Moves the currently selected event. Edit / Delete Old... Deletes all non-recurring events older than the specified date. Search/Find - Lets you search for a specific string. Search/Find Again - In case your first search didn't go far enough. Search/List - Shows the entire list of events (not just one day). Links/... Enables connection to PortCard. A description of the feature can be found in the file WinPort.TXT About / About PortCard - The credits. Messages Save Curent Changes? (Yes/No/Cancel) - You attempted Exit, New, or Open and the current file has changes that haven't been saved. (The changes could be your entries, or a recurring entry that was moved.) Yes - Saves the file No - Does not save the file Cancel - Cancels the New, Open, or Exit. Replace headline? (Yes/No) You entered a headline for a date that already has one. The headline could not be moved because there is already a headline for that date (OK). - Only one headline is allowed for any date. One or more recurring headlines had to be moved due to a conflict with another headline (OK) - Headlines can be recurring, but only one headline per day is allowed. This can cause a conflict when recurring headlines are resolved during file load. PortCal will move headlines one or more "recurrences" into the future to resolve the conflict. One or more recurring events had to be moved due to the different number of days in each month (OK) - PortCal attempted to move a monthly or yearly event to a month/year that resulted in an illegal date, such as September 31 or February 29 (during a non-leap year). The event was rescheduled for the last valid day of the target month. This message normally appears during file load, but could also appear after an alarm goes off (if the alarm is a recurring event). A word about recurring events: In PortCal (and the PortFolio) recurring events are entered only once. When the event has past, it gets moved to the next recurrence time. Like the Portfolio, PortCal moves recurring events during file load ONLY. The only exception to this is Alarms. If a recurring event has an alarm that event only will get moved after the alarm goes off (or during file load). Date/Time formats: The Headline box will always display as "Month dd, yyyy". Times will always be displayed as hh:mm. However, when entering dates and times you can very flexible. Dates and times will be parsed in a variety of formats, depending on how much information you enter and the settings of your Control Panel. When entering a date in the main edit box, do not use a format that requires blanks. PortCal only checks single words (defined by blanks) to determine if they are dates or times. Other notes: Maximum - 500 Events Enhancements/Bug Fixes: In version 2.1 The Repeat drop-down menu was changed. Weekday is now Non-Weekend, and None is now -None-. This enabled you to select any item using the keyboard (by pressing the key of the first character). Support for a DDE connection to PortCard has been added. Details can be found in the file WINPORT.TXT After a successful find, the event window would not show any events occurring before the found event on the same day. This has been fixed. The capability of moving or copying an entry using the mouse has been added. Many menu choices have had Keyboard equivalents added. (Differences between Windows and the Portfolio made it difficult or confusing to use the same "hot keys". Therefore, Windows conventions (where known) were used in deciding which keys to use. If an alarm message was already being displayed when a second alarm should go off, the second alarm would be skipped. This has been fixed such that the second alarm will go off as soon as the first message has been acknowledged. The About Box (minus the OK button) will appear during startup. It will vanish when the startup processing is completed. In version 2.0 Added the Search/List menu and associated function. Fixed a bug in weekly recurring events. If you loaded a file, and the weekly event was for the current day but an earlier time, the event would not move to the next week. Fixed an end-of month problem for monthly and yearly recurring events. Previously, if a recurring event was for the 31st of the month, and was "moved" to a month with only 30 days in it, an error would occur. Now the event is moved to the last day of the shorter month, and a message is displayed. There were several instances in which the Calendar display would not update automatically to reflect changes in the schedule. These have been fixed. The Delete Old feature has been added. Under certain conditions, using the Control Box to quit PortCal instead of the File/Exit menu selection would cause the window and icon to disappear, but the program would remain in the Task Manager. Additionally, when the Control Box was used, PortCal would not prompt you to Save Changes. These have been fixed. The Find command would always start at the oldest scheduled event instead of the currently displayed date, regardless of the user selection. This has been fixed. If a date was typed in the Edit Box whose year was out-of range for the Calendar's "Year" menu, an error would occur that would abort the program. Now, the year menu will display a blank year until the selected date is within range again. Well, that's about it. Send me your comments, suggestions, and bug reports. I make no promises, though, as I work on this in my spare time (of which I seem to have very little.) Enjoy! Brian Johnson CompuServe: 72366,1710 MCI: 306-1475 Internet: BDJ@ssw.com