
Visual 
  dBASE 7.5 Release Notes
 Following are some items 
  which describe significant product changes which represent noticeable differences 
  between version 7.5 and prior 7.x versions of Visual dBASE. These changes may 
  affect operations in the design environment, or the operation of applications.
  - The default year for 
    SET EPOCH... for new installs has been changed to 1950. The default year for 
    SET EPOCH... for prior versions of Visual dBASE was 1900. This includes new 
    installs of Visual dBASE 7.5 and your applications that are run using the 
    Visual dBASE 7.5 runtime engine. If your applications rely on an Epoch setting 
    of 1900, after installing Visual dBASE 7.5, change the Epoch setting through 
    the Visual dBASE main menu Properties | Desktop Properties in the Data Entry 
    tab. Also, if you will be using the Visual dBASE 7.5 runtime engine for existing 
    applications that rely on an Epoch setting of 1900, be sure that the following 
    entry exists in the application's INI file: 
     
       [CommandSettings]
 EPOCH=1950
 
  Also ensure that no 
      other EPOCH entry exists in the [CommandSettings] section of the application's 
      INI file. 
- Version 7.5 enforces 
    strict qualification of the Rowset.IndexName assignment. In prior versions, 
    no such qualification was performed for Rowset.IndexName. Therefore, if an 
    invalid Rowset.IndexName was assigned, or if the Rowset.IndexName was padded 
    with spaces, no error occured, and an index was not used for the Rowset. In 
    version 7.5, the specified Rowset.IndexName is verified to exist in the Rowset's 
    table. If the index does not exist, or if the index name assignment is padded 
    with extra spaces, an error message will be displayed.
 
 
- Version 7.5 has changed 
    some streaming conventions in forms and reports. In prior versions, the verbose 
    this.Parent.Parent... reference chain was used to reference a parent object. 
    In Version 7.5, for those classes which support the 'form' reference, the 
    'form' reference is used instead. This is functionally equivalent to the older 
    this.Parent.Parent... referencing scheme. However, you may notice that the 
    byte count of form (*.WFM) and report (*.REP) files is now smaller after saving 
    the form or report from the Form Designer or Report Designer in Version 7.5.
 
 
- Version 7.5 has stopped 
    streaming some unnecessary code in forms and reports. For example, in prior 
    versions, the statement 'value = false' was streamed to the form (WFM) file 
    for a PushButton. Streaming this statement is not necessary because false 
    is the default for this property. Version 7.5 has stopped streaming some of 
    these types of unnecessary statements to form (WFM) and report (REP) files. 
    You may notice that the byte count of form (WFM) and report (REP) files is 
    now smaller after saving the form or report from the Form Designer or Report 
    Designer in Version 7.5.
 
 
- Version 7.5 has stopped 
    padding Grid HeadingControl.Value assignments with extra spaces. In prior 
    versions, the HeadingControl.Value was padded with trailing spaces to 25 characters. 
    In Version 7.5, no extra spaces are added to the HeadingControl.Value assignment 
    that is specified in the Form Designer Inspector or Source Editor. However, 
    if you add either leading or trailing spaces to the assignment in the Inspector 
    or the Source Editor, these extra spaces will be preserved.
 
 
- Version 7.5 now displays 
    the name of data access objects directly below the object in the Form Designer, 
    Report Designer, and DataModule Designer. Prior versions did not display the 
    data access object names. Therefore, when opening a Form, Report, or DataModule 
    in their respective designers, the objects may now appear to be jumbled together 
    and overlap each other, or appear to overlap other objects. This is due to 
    the increased width and height of the data access objects to accommodate the 
    display of the names of the objects.
 
 
-  Version 7.5 now creates 
    a DataModule object in a Form or Report when dragging a DataModule (DMD) file 
    from the Navigator to the Form Designer or Report Designer. In previous versions, 
    when a DataModule (DMD) file was dragged from the Navigator to the Form Designer 
    or Report Designer, a DataModRef object was created. Existing Forms and Reports 
    will not be affected by this change. With the DataModule, you can drill down 
    in the Inspector to view the data access objects (and their properties) contained 
    within the DataModule. Note that changes made to data access objects that 
    are contained within a DataModule on a Form or Report will not be streamed 
    to the Form (WFM) file or Report (REP) file. These changes should be made 
    to the DataModule in the DataModule Designer or in the DataModule (DMD) source 
    file.
 
 
- Version 7.5 has discontinued 
    firing child rowset events when a corresponding event occurs in a parent (master) 
    rowset. In previous versions, when an event occurred in a parent rowset, the 
    corresponding event in all child rowsets that were linked to the parent rowset 
    was also fired, even though the action did not actually occur in the child 
    rowset. In version 7.5, child rowset events will not fire unless that particular 
    event has actually occurred in the child rowset, independent of the parent 
    rowset. The events affected by this change are: 
     
      OnSave
 CanAbandon
 OnAbandon
 CanDelete
 OnDelete
 CanEdit
 OnEdit
 
 
- Version 7.5 has changed 
    the operation of the Date class such that the properties and methods associated 
    with the year portion of a date always return a 4-digit year. In prior versions, 
    the properties and methods of the Date class that are associated with the 
    year portion of a date always returned a 2-digit year. The properties and 
    methods affected by this change are: 
     
      GetYear
 Year
 
 
- Version 7.5 has changed 
    the display of forms which are updated during loop processing. Some example 
    code: 
     
      For 
        x = 1 To 1000
 // Some processing here.
 FORM.Text1.Text := "Processing record: " + x
 Next x
 
 When the code in the 
      example above was run, the Text object display was not updated until some 
      time after the loop had completed. In Version 7.5, the Text object display 
      update is forced on each assignment change to the Text1.Text property. It 
      was common practice in prior versions to use a workaround with the Windows 
      API in application code to force the update to occur. These types of workarounds 
      should no longer be necessary in most situations and should be removed from 
      application source code after testing to ensure that the new default behavior 
      satisfies the application's requirements. The classes affected by this change 
      are:   
      EntryField
 PushButton
 Text
 TextLabel