Microsoft KB Archive/81999

= BUG: Graph: AutoInc Increments ThisPoint Instead of ThisSet =

Article ID: 81999

Article Last Modified on 2/23/2007

-

APPLIES TO


 * Microsoft Visual Basic 2.0 Professional Edition
 * Microsoft Visual Basic 3.0 Professional Edition
 * Microsoft Windows 2000 Readiness Analyzer

-



This article was previously published under Q81999



SYMPTOMS
The Graph custom control version 1.2 has four array properties: ColorData, LegendText, PatternData, and SymbolData. The values of these properties directly affect sets of data rather than the individual points in the sets. With the AutoInc property set to True, assigning a value to these four arrays will increment ThisPoint rather than ThisSet. This behavior is a potential cause of logic errors in code.



WORKAROUND
To work around the potential logic problems caused by incrementing ThisPoint, you should occasionally reset the AutoInc incrementing position by assigning values for ThisSet and ThisPoint in your code.

A second workaround is to set AutoInc to False (AutoInc=0), and explicitly set ThisSet and ThisPoint before entering a piece of data.



STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.



MORE INFORMATION
There are eight array properties in Graph: GraphData, ExtraData, LabelText, XPosData, ColorData, LegendText, PatternData, and SymbolData. To access an individual point in these arrays, you need to set the ThisSet and ThisPoint properties to indicate that point. If AutoInc is set to True (AutoInc=1), Graph will automatically set the ThisPoint and ThisSet properties.

AutoInc increments ThisSet and ThisPoint differently, depending on which property is being accessed. AutoInc will increment both ThisSet and ThisPoint when adding data to the GraphData property. For all other array properties (ExtraData, LabelText, XPosData, ColorData, LegendText, PatternData, and SymbolData), AutoInc will only increment ThisPoint. The data that you assign to the ExtraData, LabelText, and XPosData apply to the individual points of a set, so logically AutoInc should only increment ThisPoint. However, the data that you assign to the ColorData, LegendText, PatternData, and SymbolData array properties apply to the separate sets. In these cases, AutoInc should logically be incrementing the ThisSet property, but in practice it increments only the ThisPoint property.

Note: AutoInc is incrementing the proper values internally, so the data assigned to these four array properties is accurate and will function properly. AutoInc displays its progress by also incrementing ThisPoint, which is not always the logical choice.

The following example demonstrates how AutoInc increments ThisPoint and ThisSet when assigning values to ColorData. To test another array property, substitute that array name for ColorData.

Steps to Reproduce Problem
 With Visual Basic running and the Graph custom control loaded, create a form (Form1). On Form1, add a command button (Command1), a picture box (Picture1), and a graph control (Graph1).  Change the following properties for Command1:   Control    Property    Value --

Command1  Caption     &quot;Start&quot; Graph1    AutoInc      1  (true) Graph1    NumSets      2 Graph1    NumPoints    3   Add the following code to the Command1 Click event: Sub Command1_Click

Command1.Caption = &quot;ColorData&quot;  'set caption equal to array 'property name to be tested Picture1.Cls Picture1.Print &quot;ThisSet&quot;, &quot;ThisPoint&quot; ' loop through full array: For i = 1 To Graph1.NumSets * Graph1.NumPoints Picture1.Print Graph1.ThisSet, Graph1.ThisPoint Graph1.ColorData = 1 'Make some valid assignment so                               ' AutoInc increments Next Graph1.DrawMode = 2             'display newly assigned values

End Sub  Press F5 to run the program.</li></ol>

When you run the program and click the Command1 button, the program will display the array property being tested, and the picture box will display the increment pattern of ThisSet and ThisPoint as the program loops through the array property. The graph is then updated to display the newly assigned values.

Additional query words: buglist1.00 buglist2.00 buglist3.00 1.00 2.00 3.00

Keywords: kbbug KB81999

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.