Tidestone Read Me File

# Formula One 6.0 Version Read Me

Thank you for your interest in this version of Formula One. This document provides general information about this version of Formula One.

Please read this document completely before using Formula One.

## Contents

- About the Installation Program
- Installing the Product
- What Does the Installation Program Do?
- List of New Features in Formula One 6.0
- International versions of Formula One 6.0
- List of bugs fixed in Formula One 6.0
- List of Installed Files
- Redistributing Applications
- Moving the ActiveX Control
- Using the UnInstaller
- Upgrading Files to Formula One 6.0 File Format
- Compatibility with Excel
- Visual Basic Programmers Please Note
- Visual C++ Programmers Please Note
- Stand-Alone Applications
- PowerBuilder Programmers Please Note
- Contact Us

### About the Installation Program

Formula One was developed for Windows 95, Windows 98 and NT 4.0 machines. The installation program will only install on Windows 95, Windows 98 and Windows NT 4.0 machines.

Previous major versions of Formula One (eg. 3.0, 4.0, 5.0) can reside on the same machine as this release of Formula One.

Back to Table of Contents

### Installing the Product

The installation program creates new directories and copies product files to your hard disk.

To install a Tidestone ActiveX control on your hard disk:

1. Locate and double-click SETUP.EXE.
2. Follow the instructions on your screen.

Back to Table of Contents

### What Does The Installation Program Do?

The installation program performs the following tasks during the installation process:

- Allows you to select the components you want to install, a directory to hold the program files, and a folder in which to place the program on your desktop.
- Copies the files to your hard disk.
- Updates system files in your Windows system directory or the location of your choice.
- Registers the ActiveX control with the Windows Registration Database. This makes the control visible and available to your development environment.

Back to Table of Contents

### New Features in Formula One 6.0

- Excel 97 Support: Formula One 6.0's file format is 100% compatible with the Excel 97 file format. It is also compatible with file formats from Excel 95 and Excel 4.
- Minimal Recalc: Formula One now supports minimal recalculations. Under some circumstances, this can cause a dramatic improvement in recalculation speed.
- Increased Rows: Developers and users can place up to 65,536 rows on a single worksheet.
- Cell Capacity: Each cell in a worksheet can contain as much as 16KB of text.
- Merged Cells: Users and developers can now merge adjoining cells in worksheets. This opens up a wide range of worksheet formatting possibilities.
- Improved API Searching: The Formula One 6.0 API has a new and improved way of doing find and replace. It uses a new API object and new DefineSearch, FindNext, and Replace methods.
- Fractions: Formula One 6.0 now allows users to specify the denominator for fractions. Now you can express a value of 0.8 as 4/5 or as 8/10 or even as 80/100.
- Enhanced Printing: Several printing improvements have been added to this version. Included is the new F1PageSetup object that gives developers and users a wide range of paper size choices, increased control over worksheet page numbering, and the ability to set the number of copies Formula One prints by default. The Page Setup dialog box has also been redesigned.
- Date Range: Dates through the year 9999 are now accepted. The limit in previous versions of Formula One was 2078.
- Improved Cell Editing: When editing a cell, the in-cell edit space expands as needed to accommodate input.
- New Worksheet Function: Formula One now supports the SUMPRODUCT worksheet function.
- Mouse Handling: Support now exists for the IntelliPoint mouse. Hiding the scroll bars will prevent the user from using the mouse wheel to scroll.

Back to Table of Contents

### International versions of Formula One 6.0

Localized versions of Formula One are available for the following languages: Korean. If you have a copy of the CD, the information about the localized versions can be found in the Readme located in each language's subdirectory of the Regional folder. If you do not have a copy of the CD, please refer to www.tidestone.com for more information.

Back to Table of Contents

### List of bugs fixed in Formula One 6.0

version 6.0.2.05
- Fixed problem where borders were corrupted when writing to old file format.
- Fixed problem with external references when writing to old file format.
- Fixed problem where number format combining % and currency caused crash.
- Fixed problem with Formula One 2.x and Excel 4 files containing external references becoming corrupt on import.
- Fixed crash when reading files from Japanese Excel or Formula One.
- Fixed disappearing text problem.
- Fixed problems with workbooks containing control objects, on hidden VB forms.

version 6.0.2.01
- Fixed a memory leak.
- Fixed crash that occurred when read in a very large Formula One 6 or Excel 97 file created by Formula One.
- Datevalue used to return a bogus value when passed a string containing a time value only.
- Fixed a bug that prevented Formula One from reading files containing external references to workbooks with a very large number of worksheets.

version 6.0.1.03
- Fixed a bug in the auto row height code.

version 6.0.1.02
- Fixed a bug that prevented Formula One from reading old-format workbooks that had >256 externally referenced defined names.
- Fixed a bug with dates in years divisible by 400.
- Fixed bug that so Formula One can read Excel 2000 files.

Back to Table of Contents

### List of Installed Files

The following files are installed in the Formula One program directory (Tidestone\FormOne by default):

Filename | Description
--- | ---
TTF16.OCX | Formula One 32-bit ActiveX control
TTF1.EXE | Formula One Workbook Designer
TTF16.CNT | Developer's On-Line Documentation Contents File
TTF16.HLP | Developer's On-Line Documentation
TTF16.H | Visual C++ Constant File
TTF16.DEP | Visual Basic Dependency File
DELSL1.ISU | Deinstaller Log
README.HTM | This File

In addition, the following subdirectories are created in the program directory to hold sample code or redistributable files.

Directory | Description
--- | ---
VB6 | Microsoft Visual Basic 6.0 examples.
VB5 | Microsoft Visual Basic 5.0 examples.
PB6 | Powerbuilder 6.5 examples.
SAMPLES | Includes sample workbooks and icons for the buttons used in the SSMDI demo.
REDIST32 | Holds redistributable system .DLL files that must be present for Formula One to function properly in 32-bit environments.

### Redistributing Applications

The table below shows all the files necessary for Formula One to operate properly. If you have purchased Formula One and are deploying an application, you must ensure that the first three groups of files listed below exist on your client's machine and are the proper version. The correct versions of these files are provided on the product CD. If your client's machine has older versions of these files, you should update them.

| 32-Bit Files
--- | ---
1 | TTF16.OCX
2 | AXDIST.EXE* OLEAUT32.DLL OLEPRO32.DLL STDOLE2.TLB
3 | OLE32.DLL
4 | KERNEL32.DLL USER32.DLL GDI32.DLL VERSION.DLL ADVAPI32.DLL

This first group of files are the Formula One redistributable files. These files may be in the Windows system directory, or on the computer's path. The .OCX file must be registered on each user's machine. The Formula One Setup program registers the OCX on your development machine. To register the OCX on the user machines, use the REGSVR32.EXE utilities. These utilities are available from Microsoft. To run these utilities type the following at the command prompt on each user's machine:

`regsvr32 filename`

The second group of files are Microsoft redistributable files necessary for this ActiveX control to operate. Your programming environment should have installed and registered these files. If they were not installed, or they are older versions, the Formula One installer updated and registered them. These files were then copied to the REDIST32 directory in the installation directory, depending on which installation options were chosen. Copy these files from your development machine to your users machines. You may run the installer again and install only these files. These files must be present on your user's machines.

Our ActiveX controls require OLE2 support to be installed on a machine. In order to run an application containing one of our controls you must ensure OLE2 has been installed on the user's machine. The third group of files in the table list the OLE2 files accessed by Formula One. Normally, copying these files to the user machine is all that is required. However, some older Windows machines do not have the new OLE2 files installed. You must then install full OLE2 support and ensure that these files are properly registered on the machine. OLE2 files can be downloaded from Microsoft. Microsoft's installer should handle registration for you, but you can also register the files manually using the REGSVR32.EXE. The result code from REGSVR32 will indicate whether any of the files need to be registered.

The fourth group of files should be present on any system running Windows. You should not remove or update these files. They are included only to form a complete list of filed needed to use this ActiveX control.

Special Note:Some developers develop an application on one machine and then move it to another to build an executable. If you are building an executable containing one of our components, you must be sure that the component is properly installed on the make machine. The license key that is copied from the registry when an executable is built is only available when the component has been properly installed on a machine.

* AXDist.exe is a Microsoft program that installs the URLMon.dll and dependencies in the Windows System directory. It makes the required registry settings on Windows NT 4.0 and Windows 95 machines. These files are needed in order to use the URL property on machines running IE 3 or earlier. You do not need to redistribute the AXDist.exe if you are not planning to use the URL property or if you are deploying to a machine that has IE 4 or later on it.

Please note that Microsoft Corporation has found a problem with the AXDist.exe program in IE 4. For more information, see article Q185375 on the Microsoft Support web pages.

Tidestone's installer deals with this potential problem by checking to see if IE 4 is on the machine. This is accomplished by searching for Urlmon.dll in the Window's System directory. If Urlmon.dll is not located in the Windows System directory, then IE 3 or earlier (or no version of IE) is on the machine, and the Tidestone installer asks if you want to run AXDist.exe. You only need to run AXDist.exe if you are planning to us the URL property. If Urlmon.dll is located in the Windows System directory, then IE 4 or later is on the machine, and the Tidestone installer does not prompt if you want to run AXDist.exe.

Please be aware of these issues if you are planning to redistribute your software with these dlls to end-uses who may be using different versions of IE.

Back to Table of Contents

### Moving the ActiveX Control

During the installation process, the ActiveX control and the directory in which it is installed are registered in the Windows Registration Database in Windows 95, Windows 98 and Windows NT. This makes the ActiveX control visible and available to your development environment. However, if you move the ActiveX control to a different directory, or rename the directory that contains it, the information in the registry is no longer valid. This may cause the ActiveX control to be unable to locate its help file. If you find it necessary to move the ActiveX control or rename its directory, use the REGSVR32.EXE utilities provided with most Microsoft development products to reregister the ActiveX control in its new location.

The ActiveX control and HLP files must always be in the same directory.

Back to Table of Contents

### Using the UnInstaller

Formula One files can be removed from your system with the Add\Remove Programs item or by double-clicking the UnInstaller icon in the Tidestone folder in the Start menu. Using the UnInstaller will remove all files and Registration Database entries made during the installation. If you are using Visual Basic, it will create a support cache file (TTF16.OCA) that must be removed manually.

The UnInstaller creates a log of operations during the installation which it "undoes" to "uninstall" the product. You should run the UnInstaller before running the installation program additional times. If you run the installation program a second time without using the UnInstaller first, only the options selected in the second install will be written to the UnInstall log and later be uninstalled. For the UnInstaller to work properly, you should reinstall your original options in addition to the options you wish to install.

The operating system does not always immediately update the Windows Start menu. This means that sometimes uninstalled shortcuts do not always disappear right away. Because of this limitation, an uninstalled shortcut can temporarily continue to appear in the Start menu even though it really has been uninstalled. If you wait for a while, run some other programs, or restart the system, the shortcut should eventually disappear from the Start menu.

To verify that the program has been uninstalled:

1. From the Start menu, go to Settings/Taskbar/Start Menu Programs/Advanced.
2. When the Explorer displays, click on the existing program folder.
3. Check to see if the shortcut exists in the program folder. If it does not, then the shortcut has been uninstalled correctly, but the Start menu has not been updated correctly.

Back to Table of Contents

### Upgrading Files to Formula One 6.0 File Format

Formula One 2.x workbooks

In order to convert Formula One 2.0 VBX workbooks, you must perform the following steps after successfully installing Formula One 6.0:

1. Open the standalone Workbook Designer and use the File > Import > Formula One 2.x command. This menu command is only available on the standalone Workbook Designer.
2. After importing the file, save it in the Workbook Designer using the File > Save command. This will save it in 5.0 format. Then you may open that 5.0 file and save it in the 6.0 format.

Note: You can no longer read in a Formula One 2.x file programmatically. You must use the standalone Workbook Designer to import it, as described above.

Excel 4.x files

In order to convert Excel 4.x files, you must perform the following steps after successfully installating Formula One 6.0:

1. Open the standalone Workbook Designer and use the File > Import > Excel 4 command. This menu command is only available on the standalone Workbook Designer.
2. After importing the file, save it in the Workbook Designer using the File > Save command.

Note: You can no longer read in an Excel 4 file programmatically. You must use the standalone Workbook Designer to import it, as described above.

Back to Table of Contents

### Compatibility with Excel

While Formula One's file format is 100% compatible with the Microsoft Excel file format, certain Formula One feature are not supported by Excel and vice versa.

Specifically, Formula One's graphical object (arc, line, oval, polygon, and rectange) are supported by Excel 95 but not by Excel 97.

Formula One's form objects (button, check box, and dropdown listbox) and Formula One's picture objects are not supported by Excel.

Validation rules created in Formula One are not supported by Excel.

Back to Table of Contents

### Visual Basic Programmers Please Note

Projects created using previous versions of Formula One

In order to use any projects created with a previous version of the Formula One ActiveX control, you need to perform the following steps after successfully installing Formula One 6.0:

1. Replace all previous versions of Formula One on a Visual Basic form with Formula One 6. In the Component Library, Formula One 6 is listed as Tidestone Formula One 6.0 Library.
2. Save the project.

For more information about upgrading from previous versions of Formula One, check Tidestone's website at http://www.tidestone.com

Multiple versions of Formula One present on a Visual Basic form

If you want to keep multiple versions of Formula One installed as components in Visual Basic, you will need to ensure that code that refers to objects specifies which version of Formula One you want to use. This is because of the names of the objects are the same in both versions so Visual Basic has no way of knowing which version of Formula One you want to use. The following example, which uses the F1RangeRef object, specifies that the 6.0 version of the object should be used:

    Dim Range as TTF160Ctl.F1RangeRef

Another way to fix this problem is to use either the 5.0 or the 6.0 version of the software, but not both.

Back to Table of Contents

### Visual C++ Programmers Please Note

In order to use any projects created with a previous version of the Formula One ActiveX control, you need to perform the following steps after successfully installing Formula One:

1. Delete any wrapper classes for the OCX and any reference to it from your project directory.
2. Delete your DEBUG folder and make a change to the control in the resource and save it. The OCX is referred to as Tidestone Formula One 6.0 Library.
3. Comment out any #include statements that reference the wrapper header files.
4. Go to the Build menu and choose Update All Dependencies.
5. Go to the Component Gallery.
6. Go to the OLE Controls Panel.
7. Select Tidestone Formula One.
8. Click Insert. This will update your Class.

Licensed Control Information

When you place a control on a form at design time, the licensing information is cached in the resource file of the container application.

Dynamically creating a licensed control requires license key information.

1. Create a dummy application such as a FormView or a Dialog based application.
2. Draw the control on the form.
3. Obtain the control's class factory (CoGetClassObject).
4. Call IClassFactory2::RequestLicKey.
5. Paste the resulting key value into the real container's code.

This would be placed as the last parameter of the Create statement.

The first parameter to the call of CLSIDFromProgID needs to be changed to the ID name of the Control you are using. You can obtain this ID by running REGEDIT.EXE and searching for the class name of the control you are currently using. Use that as the string for the OLESTR.

    //The following example shows how to do this for the Formula One
    //Control. Place this code in a command button on the same form as the control.

        CLSID  		clsid;
        CString 		m_strLicense;
        IClassFactory2* pClassFactory;

        if (SUCCEEDED(CLSIDFromProgID(OLESTR("TTF16.TTF1.6"),
    &clsid)) && SUCCEEDED(CoGetClassObject(clsid, CLSCTX_INPROC_SERVER,
    NULL,IID_IClassFactory2, reinterpret_cast(&pClassFactory))))
        {
            BSTR bstrLic;
            bstrLic = 0;
            if (SUCCEEDED(pClassFactory->RequestLicKey(0, &bstrLic)))
            {
                m_strLicense = bstrLic;
                SysFreeString(bstrLic);
            }
            else
            {
                m_strLicense = _T("");
            }
            pClassFactory->Release();
        }
        else
        {
            m_strLicense = _T("");
        }
        AfxMessageBox(m_strLicense);

Pass the string that the message box contains as the last parameter to the Create function in your dynamically created control's application.

Example

    BSTR LicenseKey = SysAllocString(OLESTR(m_strLicense));
    //Use the string value of m_strLicense that was shown in the
    //message box

    if (TTF1.Create("Formula One", dwStyle, rect, this, 1000,
    NULL, FALSE, LicenseKey) == 0)
            return 0;
    SysFreeString(LicenseKey);

Back to Table of Contents

### Stand-Alone Applications

In order for drag-and-drop functionality to work in stand-alone applications, you will need to add OleInitialize and OleUninitialize to your stand-alone application.

The OleInitialize and OleUninitialize functions need to be added to any C++ application that uses Formula One.

Specifically, you should call ::OleInitialize(NULL) in the start up code. ::OleUninitialize() should be called in the exit code of the application.

Back to Table of Contents

### PowerBuilder Programmers Please Note

A keyword name collision currently exists in PowerBuilder with events that have a cancel parameter. PowerBuilder generates an informational error message during compile for applications with OLE controls using such events. The PowerBuilder error message is as follows:

(0006) Information C0148: The identifier 'cancel' conflicts with an existing property with this name. The new definition of 'cancel' will take precedence and the prior value will be ignored until this version of 'cancel' goes out of scope.

Action: This is a just a warning; it will not affect the execution of your code. PowerBuilder PTrack Number 343867

Back to Table of Contents

## Contact Us

## Company
Headquarters

### Tidestone Technologies
12980 Metcalf, Suite 300
Overland Park, KS 66213
(913) 851-2200
FAX (913) 851-1390

## European
Headquarters

### Tidestone Technologies Europe
11 Eldon Way
Paddock Wood
Kent, UK TN12 6BE
+44 1892 834343
FAX +44 1892 835843

#### United States Sales

PHONE: (913) 851-2200
FAX: (913) 851-1390
EMAIL: sales@tidestone.com

#### United States Developer Services

PHONE: (913) 851-2200
FAX: (913) 851-1390
WEB: http://www.tidestone.com

#### European Sales

PHONE: +44 1892 834343
FAX: +44 1892 835843
EMAIL: sales@tidestone.co.uk

#### European Developer Services

PHONE: +44 1892 834343
FAX: +44 1892 835843
EMAIL: support@tidestone.co.uk

Back to Table of Contents