Visual Basic Controls in a Nutshell by Evan S. Dictor Unconfirmed error reports are from readers. They have not yet been approved or disproved by the author or editor and represent solely the opinion of the reader. If you have technical questions or error reports, you can send them to booktech@oreilly.com. (Please specify the printing date of your copy.) This page was last updated July 13, 2001. Here's the key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification UNCONFIRMED errors and suggestions from readers: ?General? Why is the MSTab(SSTab) control omitted? I know it is a Sheridan control, but it is included with both VB 5 and 6 and is documented (poorly) in the MSDN library. I use this control quite often and was dissapointed to discover it missing from the text. {19} 11 lines from the bottom of the page, the Move method is explained to be the same as four property assignments. The first two assignments now read: cmdOK.Width = Me.Width / 10 cmdOK.Heigth = Me.Heigth / 10 * 6 They should read: cmdOK.Left = Me.Width / 10 cmdOK.Top = Me.Heigth / 10 * 6 [30] CausesValidation: Every reference in the book implies that this setting affects the control where the property is set. In fact, it affects the control that loses focus (to the control with the setting) that is affected. {60} About half way down the page, you list the "UpdateControls method" under the ADO Data Control. This method applies to the Data Control and not the ADO Data Control. [87] missing flag description: The following controls (VB6) are not described in the text: datarepeater drivelistbox dirlistbox filelistbox {86-87} The following option of a common dialog box is not described in the text: 1024-cdlOFNExtensionDifferent (169) Last paragraph; The last sentence should read: In cases where the Execute method does not retrieve data (such as the MKDIR command, which creates a directory on the remote system, or the RMDIR command, which removes a directory from the remote system), the state value icResponseCompleted signals that the method has completed successfully. [186] List View Control: Here's something you might want to check out: In using the ListView Control, the value of a Key must be a string. I was trying to use a database PrimaryKey number of type long and convert it to a string before setting the Key value. This generates an "Invalid Key" error. It seems that for the Key value, you cannot use a number even if it is a string. I appended "ID_" to the string and it worked perfectly. This took about an hour to figure out so I thought it might be worth mentioning. {187-188} At the very top of the page, in the Tip section: COMCTL32.OCX is listed as the ListView control used for the examples. On page 188, several properties (gridlines, checkboxes, etc) are listed that are not part of COMCTL32.OCX. MSCOMCTL.OCX should be listed instead as it provides all the properties that are mentioned. {223} Figure 5-36; Inside the Plot Object box, the LocationRect property is incorrectly identified as the LocationField property. {226} 3rd Line From the Bottom; Line should start with "SetData" instead of "GetData" {229} In Figure 5-39, the chart thumbnail on the 2nd line from top, on the left, is labeled VtChChartType3dBar. It looks like a line chart to me. Should this be VtChChartType2dDLine? (229) Under ChartType property; ChartType numbers 3, 4, 5, 6, 7, 8, 9, 14 each have an extra "D" following "2d" or "3d" (e.g., "3-VtChChartType2dDLine" should be "3-VtChChartType2dLine"). (269) General; For completeness, the BackColorFixed and BackColorSel properties should be listed (or at least included in the "ForeColorFixed, ForeColorSel property" section). {308} top of the page: The Case statement "updDuring" is missing the End If to terminate the If statement within the Select Case. This generates a compile error. {375, 597} I've got one correction and one major bug that you probably should mention in any future editions. The control I've most used it for is the Winsock control. There is a typo on page 375. Under "The PeekData Method" heading, the code listing says "GetData." In addition, on page 597 under the "GetData" heading, the syntax line actually says "GetData." The major bug is something I found when trying to use it, and it's confirmed with an article in Microsoft's knowledge base. It's serious enough to mean that the control is just about unusable for a client-server application, if there's any likelihood of having more than one client connected at a time. The problem, according to Microsoft, is that SendData only works over the most recently established connection - i.e., if you have three clients connected simultaneously, SendData will only work to the third client. Trying to use SendData to the other two doesn't give an error, but the data simply never goes anywhere. The bug is detailed in article Q245159 in the Microsoft Knowledge Base. They have confirmed it to be a bug in both VB5 and VB6, up to and including Visual Studio SP3. There's no fix, and no workaround on offer. [422] The following property of the ListBox control is not described in the text: Columns Columns is also not described in the "ListBox" entry in the Controls section, pages 182-186, where it would have made a reasonable "Gotcha" for newbies to avoid horizontal snaking columns. [425] The section on the Container property indicates that this property applies to all controls. This is incorrect - it does not apply to the timer control. {562} The second "Value" section on the page now reads: Applies to: FlatScrollBar, HScrollBar, ProgressBar, Slider, UpDown, VScrollBar Type: Long integer Represents the value of the control between its Min and Max properties. However, according to the MSDN Library help files, the range for HScrollBar and VScrollBar is from -32,768 to 32,767. This is the same range as Type: Integer not Type: Long Integer.