WinPort - Portfolio functions for Mircrosoft Windows. WinPort is not a program in itself, but a nickname I gave to a collection of programs I wrote to allow me to more easily acces my Portfolio files from my Windows-based PC. There are two programs currently available, PortCard and PortCal. After using these two programs for a while, I quickly realized that I was always using both of them for my scheduling. I would enter events into the calendar, then often I would enter more info into a .ADR file that I was using as a To-Do list. These two items (my calendar and my to-do list) were separate, but had considerable overlap. I thought that it would be great if I could enter or view an item in PortCal and be able to instantly find the corresponding event (if any) in PortCard. I began playing with the Windows DDE support, and WinPort was born. WinPort is far from complete. I am considering many new features. However, is is very handy in its current state, and I would like some feedback. Please send me your suggestions and bug reports. Requirements: Windows 3.0 or later PortCal version 2.1 or later. PortCard version 2.0 or later. Address Book and Calendar files in the same directory and with the same name. (For example, D:\SCHEDULE.CAL and D:\SCHEDULE.ADR.) A PC Card drive is recommended. Preparation: The link requires files to have the same name. If you are already using the Address Book program and/or PortCard to maintain a to-do list, copy it into the same directory as your calendar and rename it so that it has the same name (and an extension of .ADR). If not, you should create one. Use the Address book or PortCard to create a new .ADR file. Give it the same name as your schedule. You may also want to make the first card something like "AA@ My to-do list". (The "AA@" causes the card to always be first in the card list.) Save the file and exit PortCard. Start PortCal, and open your schedule. Pull down the "Links" menu, and select "Establish Link". (If you started PortCal in such a way that it auto-loaded a calendar, then PortCal will automatically attempt to establish a link.) When PortCal tries to create a link with PortCard, it does the following: It makes a DDE call to all running applications to see if any will give the proper response. If there is a running copy of PortCard that autoloaded a file with the same name, it will respond, and the link will be established. (Files opened by PortCard using the "Open File" dialog box will NOT respond.) If no program responds, PortCal will look in the same directory as its calendar for a file with the same name and an extension of .ADR. If found, it will launch PortCard, telling it to autoload the located file. The link will then be established. (All of that sounds pretty complicated, but it's really quite simple. Just keep your two files in the same directory, and let PortCal do the work for you.) When the link is established, an extra checkbox labeled "Card" will appear on the calendar. This (and the items in the Links menu) are the only indications that you have a link. At this point, PortCal is in control of PortCard. You can still control PortCard the way you always did, but for most things you won't need to. PortCal now has the following additional functions: Adding an event: When you're adding an event, you can also check the "Card" box. When you enter your new event, it will be placed in the schedule as always. In addition, it will enter a blank card into PortCard, giving it an index the same as the event you just added. It will also bring PortCard to the front so that you can enter text on the card. (If PortCard was "minimized", it will automatically be "restored" for you.) Changing an entry. When you double-click an entry in PortCal, It will ask PortCard if there is a card with a matching index line. If there is, the "Card" checkbox will be checked for you. If you turn off the checkbox, the card will automatically be deleted. If you turn on the checkbox for an entry that did not have a corresponding card, the card will be created. If you change an entry that has a corresponding card, the card's index line will be changed to match. Deleting an entry - When you delete a calendar entry that has a corresponding card, the card will be deleted. Viewing a card - Of course, you could bring Portcard to the front and use it as you normally do. Also, you could... Click on an entry in PortCal. Pull down the Links menu. If the item you selected has a matching card, the Show Card item will be enabled. Selecting Show Card will bring PortCard to the front, and display the matching card. As before, when you single-click on a headline or event, a small square will appear to the left of the headline box or event box, and you can drag the box onto the calendar window to move or copy the event. When a link is established, the box is also a visual indicator. If there is no card associated with the event, the box will be hollow (i.e., have a grey interior). If there is a card associated with the event or headline, the box will be filled (i.e., have a black interior). As usual, if you are creating a new event or are making changes to an existing event, the right mouse button will end the editing of the event. This is still true when a link is established. However, if you are not creating or changing an event, clicking the right mouse button will behave the same as if you selected Show Card from the Links menu. (I.e. it will show the card associated with the highlighted event if one exists.) Selecting Refresh, Save, or Exit from PortCal will operate PortCal and PortCard, causing the action to occur in both applications. Selecting New or Open from PortCal will terminate the link. Whenever PortCal askes you to "Save Changes?", your answer will affect both applications. When an Alarm goes off, there will be two buttons in the Alarm window labeled OK and Card. The Card button will be greyed out if there is no card associated with that Alarm. Clicking on Card will dismiss the Alarm (as will OK), but the Card button will also bring PortCard to the front and display the card associated with that Alarm. (If no link is established, the Card button will not be present.) You can destroy the link between PortCal and PortCard by selecting "Close Link" from the Links menu. Any DDE error (such as a DDE timeout) will also close the link. When the link is closed, the PortCal and PortCard operate as two separate applications. If you closed the link by mistake, or it was closed due to a DDE error, you can simply select Establish Link from the Links menu again. A few notes: There is no "magic" connection between a calendar event and a card. Matches are made simply by comparing the event text with the index line on the card. This has the following caveats: If you add two events with the same description, two cards will be created. Selecting, changing, or deleting either event in the calendar will cause the first card to be affected. In this version of WinPort, PortCal can control certain aspects of PortCard, but not vice-versa. This means, for example, that if you do a save from PortCard, PortCal will NOT be saved as well. If you use PortCard to change a card's Index, it will NOT cause a corresponding change to the calendar. For that reason, you should always use PortCal when you want to control both applications. Also: PortCal will only prompt you to Save Changes if the calendar is "dirty". Therefore, if you change a card, but not the calendar, then select Exit from the calendar, your card changes will be lost. (This will be remedied in a future release.) PortCal will establish a link with one "instance" of PortCard. You can have multiple copies of PortCard running at the same time. PortCal will only control one of them. If you have both applictions running when you Exit Windows, Windows tells each application to shut down, in turn. If PortCard shuts down first, you may receive a message from PortCal saying the the link to PortCard has been closed. Also, depending on the order that Windows shuts down programs, you will get zero, one, or two questions, asking you to "Save Changes?". As long as you always answer "Yes", you should have no problems. That's about it. Play with it, try it, experiment with it. It's actually easier to use than it is to describe. Please send me your comments and suggstions.