No project of this size can be completely without errors and this is no exception. It's sort of like writing a 300,000 word Visual Basic program without the benefit of a compiler to check your spelling and grammar. This page describes some improvements to the example programs and the mistakes found so far.
If you find other errors, please let me know.
Thanks to the following for reporting errors: Ged Mead, Gilles Plante.
These are enhancements to programs that you may find useful.
amowbray asked about the printing program in Chapter 23 pages 643-646 in the book's
Wrox forum. The code was not correctly ending pages while printing a long series of short paragraphs.
It seems that MeasureString always allows you to print at least one line. When the code gets near the bottom of the page, it sometimes thinks it can print some text when it has actually run out of room.
Download an improved version of the program here.
These are generally more annoying than confusing.
|16||In the fourth paragraph's second-to-last sentence, "Option Strict" should be "Option Explicit."|
|26||In the Toggle Breakpoint parapraph talks about symbols representing breakpoints in Figure 1-21. Instead, look at Figure 1-26. In that figure, line 3 contains a breakpoint and the point of execution, and lines 4 and 5 contain breakpoints. In the following figure, line 4 contains a breakpoint and the point of execution, line 5 contains a breakpoint, and line 7 contains a disabled breakpoint.
|33||In the middle of the page, "Command and Intermediate" should be "Command and Immediate."|
|57||Linda noticed that Figure 1-57 shows the wrong picture. Click here to see the correct figure.|
|96-100||Blocks of text repeat. For example: "ValidateFiveDigits checks the . . . message for the TextBox control" appears 3 times. On pages 98, 99 and 100, "When the user tries ... that the data is invalid" is also repeated 3 times. (I think this sort of problem appeared in the final stages. There was some text that I wrote, an editor moved, and then I moved again. I suspect production printed it in all three locations.)|
|212||In the second highlighted code, this:
variable = IIf(condition, value_if_false, value_if_true)
variable = IIf(condition, value_if_true, value_if_false)
|547||The translation matrix is transposed. It should look like this:
| 1 0 0 |
| 0 1 0 |
| Tx Ty 1 |
|645||The code that prints page numbers has incorrect comments. For even pages instead of saying "The gutter is on the left," it should say "The gutter is on the right so the page number is on the left." Similarly for odd pages it should say "The gutter is on the left so the page number is on the right."|
|721||In the second-to-last paragraph before the code, all occurrences of "Option Explicit" should be "Option Strict." I think my fingers were typing faster than my brain was thinking.|
|784||Henry O'Mara discovered that the bottom of the table of Assignment Operators was chopped off. There should be two more lines and a sentence after it:
| Operator || Example || Original Syntax Equivalent |
|<<=||A <<= B||A = A << B|
|>>=||A >>= B||A = A >> B|
There are no assignment operators corresponding to Mod or the Boolean operators.
|848||The descriptions for the MonthCalendar control's SelectStart and SelectEnd properties is switched. SelectedStart represents the first date and SelectionEnd represents the last date.|
If you sign up for one of my VB Helper newsletters, you will be notified when there are updates to this book.