|
An Introduction to Programming |
|
|
1 | (1) |
|
How Visual Basic Stores Source Files |
|
|
2 | (1) |
|
Creating an Executable Program |
|
|
3 | (1) |
|
Getting Started with the New Project Dialog Box |
|
|
4 | (1) |
|
Using the New Application Wizard |
|
|
5 | (1) |
|
Understanding Interface Types |
|
|
6 | (1) |
|
Using the VB Application Wizard to Create a Project Framework |
|
|
7 | (1) |
|
Selecting an Interface Type in VB Application Wizard |
|
|
8 | (1) |
|
Understanding Radio Buttons |
|
|
9 | (1) |
|
Selecting Menus in Application Wizard |
|
|
10 | (1) |
|
Using the Application Wizard to Create a Toolbar |
|
|
11 | (1) |
|
Using the Application Wizard to Add Resource Files |
|
|
12 | (1) |
|
Using the Wizard to Add An Internet Connection |
|
|
13 | (1) |
|
|
14 | (1) |
|
|
15 | (1) |
|
Connecting to Databases Using the Wizard |
|
|
16 | (1) |
|
Finishing the Creation of Your New Wizard---Generated Project |
|
|
17 | (1) |
|
Reading The VB Application Wizard's Summary Report |
|
|
18 | (1) |
|
Saving Your New Wizard-Generated Project |
|
|
19 | (1) |
|
Creating Fully Executable Files Without Entering Any Code |
|
|
20 | (1) |
|
Understanding the Editing Window |
|
|
21 | (1) |
|
Understanding The Toolbox |
|
|
22 | (1) |
|
Understanding The Properties Window |
|
|
23 | (1) |
|
Understanding The Project Explorer |
|
|
24 | (1) |
|
Understanding The Form Layout Window |
|
|
25 | (1) |
|
Understanding The Editing Display Window |
|
|
26 | (1) |
|
Understanding Icons On the Toolbar |
|
|
27 | (1) |
|
Introducing the Visual Basic Menu Bar |
|
|
28 | (1) |
|
|
29 | (1) |
|
|
30 | (1) |
|
|
31 | (1) |
|
|
32 | (1) |
|
|
33 | (1) |
|
|
34 | (1) |
|
|
35 | (1) |
|
|
36 | (1) |
|
|
37 | (1) |
|
|
38 | (1) |
|
|
39 | (1) |
|
|
40 | (1) |
|
Understanding the End Statement |
|
|
41 | (1) |
|
Running Your Visual Basic Program |
|
|
42 | (1) |
|
|
43 | (1) |
|
|
44 | (1) |
|
Creating an Executable from Your Code |
|
|
45 | (1) |
|
Understanding Syntax Errors |
|
|
46 | (1) |
|
Structuring a Visual Basic Program |
|
|
47 | (1) |
|
Writing Your Second Program |
|
|
48 | (1) |
|
Changing the Autosave Option |
|
|
49 | (1) |
|
Defining Just-In-Time Compilation |
|
|
50 | (1) |
|
|
51 | (1) |
|
|
52 | (1) |
|
Adding Statements to Your Program |
|
|
53 | (1) |
|
Displaying Output On a New Line |
|
|
54 | (1) |
|
Using the Visual Basic Constants |
|
|
55 | (1) |
|
Visual Basic Does Not Consider Case |
|
|
56 | (1) |
|
Understanding Logic Errors (Bugs) |
|
|
57 | (1) |
|
Trapping Errors in Your Programs |
|
|
58 | (1) |
|
|
59 | (1) |
|
Understanding the Program Development Process |
|
|
60 | (1) |
|
|
61 | (1) |
|
Improving Your Program Readability |
|
|
62 | (1) |
|
Using Comments to Exclude Program Statements |
|
|
63 | (1) |
|
Beginning to Understand Scope |
|
|
64 | (1) |
|
Understanding the Way Windows Messages are Handled |
|
|
65 | (1) |
|
Maintaining Rigid Control of the Interface |
|
|
66 | (1) |
|
|
67 | (1) |
|
|
68 | (1) |
|
Declaring Module- and Form-Level Variables |
|
|
69 | (1) |
|
Declaring Procedure Variables |
|
|
70 | (1) |
|
Reconciling Variable Name Conflicts |
|
|
71 | (1) |
|
Using the Public Keyword with Variables |
|
|
72 | (1) |
|
Assigning a Value to a Variable |
|
|
73 | (1) |
|
Understanding Variable Types |
|
|
74 | (1) |
|
Declaring Multiple Variables of the Same Type |
|
|
75 | (1) |
|
Commenting Your Variables at Declaration |
|
|
76 | (1) |
|
Using Meaningful Variable Names |
|
|
77 | (1) |
|
Understanding Visual Basic's Keywords |
|
|
78 | (1) |
|
Understanding the Option Explicit Statement |
|
|
79 | (1) |
|
Understanding the Option Base Statement |
|
|
80 | (1) |
|
Understanding Variables of Type Integer |
|
|
81 | (1) |
|
Understanding Variables of Type Long |
|
|
82 | (1) |
|
Understanding Variables of Type String |
|
|
83 | (1) |
|
Understanding Variables of Type Fixed--Length String |
|
|
84 | (1) |
|
Understanding Variables of Type Single |
|
|
85 | (1) |
|
Understanding Variables of Type Boolean |
|
|
86 | (1) |
|
Understanding Variables of Type Byte |
|
|
87 | (1) |
|
Understanding Variables of Type Currency |
|
|
88 | (1) |
|
Understanding Variables of Type Date |
|
|
89 | (1) |
|
Understanding Variables of Type Double |
|
|
90 | (1) |
|
Understanding Variables of Type Object |
|
|
91 | (1) |
|
Understanding Variables of Type Variant |
|
|
92 | (1) |
|
Understanding Control Types |
|
|
93 | (1) |
|
Why Visual Basic Does Not Use Pointers |
|
|
94 | (1) |
|
Assigning Values to Floating--Point Variables |
|
|
95 | (1) |
|
Assigning Values to Variables of Type Integer and Long |
|
|
96 | (1) |
|
Assigning Values to Variables of Type String |
|
|
97 | (1) |
|
Assigning Values to Variables of Type Fixed--Length String |
|
|
98 | (1) |
|
Assigning Values to Variables of Types Single and Double |
|
|
99 | (1) |
|
Assigning Values to Variables of Type Boolean |
|
|
100 | (1) |
|
Assigning Values to Variables of Type Byte |
|
|
101 | (1) |
|
Assigning Values to Variables of Type Currency |
|
|
102 | (1) |
|
Understanding Variables of Type Object |
|
|
103 | (1) |
|
Assigning Values to Variables of Type Date |
|
|
104 | (1) |
|
|
105 | (1) |
|
|
106 | (1) |
|
Assigning Quotes and Other Characters |
|
|
107 | (1) |
|
|
108 | (1) |
|
Using Debug.Print to Output Information |
|
|
109 | (1) |
|
Using the Str Function to Convert a Number to a String |
|
|
110 | (1) |
|
Using the Format Function to Convert a Number to a String |
|
|
111 | (1) |
|
Using the Format Function to Convert a Date to a String |
|
|
112 | (1) |
|
Basic Math Operations in Visual Basic |
|
|
113 | (1) |
|
Understanding Modulo Arithmetic |
|
|
114 | (1) |
|
Understanding Operator Precedence |
|
|
115 | (1) |
|
Forcing the Order of Operator Evaluation |
|
|
116 | (1) |
|
Adding and Substracting Values |
|
|
117 | (1) |
|
Understanding a Bitwise Or Operation |
|
|
118 | (1) |
|
Understanding the Xor Operator |
|
|
119 | (1) |
|
Understanding a Bitwise And Operation |
|
|
120 | (1) |
|
Understanding a Bitwise Eqv Operation |
|
|
121 | (1) |
|
Understanding a Bitwise Imp Operation |
|
|
122 | (1) |
|
Introducing Conditional Processing |
|
|
123 | (1) |
|
Introducing Iterative Processing |
|
|
124 | (1) |
|
Understanding How Visual Basic Represents True and False |
|
|
125 | (1) |
|
Testing a Condition With If--Then |
|
|
126 | (1) |
|
Understanding the Use of Parentheses in Conditional Processing |
|
|
127 | (1) |
|
Understanding Simple and Compound Statements |
|
|
128 | (1) |
|
|
129 | (1) |
|
Performing Relational Tests |
|
|
130 | (1) |
|
Performing a Logical And to Test Two Conditions |
|
|
131 | (1) |
|
Performing a Logical Or to Test Two Conditions |
|
|
132 | (1) |
|
Performing a Logical Not Operation |
|
|
133 | (1) |
|
Performing a Logical Xor Operation |
|
|
134 | (1) |
|
Performing a Logical Eqv Operation |
|
|
135 | (1) |
|
Performing a Logical Imp Operation |
|
|
136 | (1) |
|
Assigning the Result of a Condition |
|
|
137 | (1) |
|
Declaring Variables Within Compound Statements |
|
|
138 | (1) |
|
Using Indentation to Improve Readability |
|
|
139 | (1) |
|
Testing Floating--Point Values |
|
|
140 | (1) |
|
|
141 | (1) |
|
|
142 | (1) |
|
|
143 | (1) |
|
Performing Statements a Specific Number of Times |
|
|
144 | (1) |
|
Parts of the For Statement Are Optional |
|
|
145 | (1) |
|
Decrementing Values in a For--Next Statement |
|
|
146 | (1) |
|
Controlling the For--Next Loop Increment |
|
|
147 | (1) |
|
For--Next Loops Are not Just for Integer Variables |
|
|
148 | (1) |
|
Understanding a Null Loop |
|
|
149 | (1) |
|
Understanding a Do Events Loop |
|
|
150 | (1) |
|
Dangers of an Infinite Loop |
|
|
151 | (1) |
|
Using Nested For--Next Loops |
|
|
152 | (1) |
|
Changing the Control Variable's Value |
|
|
153 | (1) |
|
Using Next within a Conditional Statement |
|
|
154 | (1) |
|
Ending a Loop Using the Exit For Statement |
|
|
155 | (1) |
|
Repeating One or More Statements Using a Do Loop |
|
|
156 | (1) |
|
Understanding the Parts of a Do Loop |
|
|
157 | (1) |
|
Using While--Wend For Loops |
|
|
158 | (1) |
|
Always Performing One or More Statements Using the Do Loop |
|
|
159 | (1) |
|
Repeating One or More Statements Using a Do Until Loop |
|
|
160 | (1) |
|
Ending a Loop Using Exit Do |
|
|
161 | (1) |
|
|
162 | (1) |
|
Testing Multiple Conditions |
|
|
163 | (1) |
|
Understanding the Case Else Statement |
|
|
164 | (1) |
|
Visualizing a Visual Basic String |
|
|
165 | (1) |
|
How Visual Basic Stores a String |
|
|
166 | (1) |
|
How Visual Basic Stores Variable--Length Strings |
|
|
167 | (1) |
|
Understanding Zero--Terminated Strings |
|
|
168 | (1) |
|
|
169 | (1) |
|
Using the Option Compare Text Switch |
|
|
170 | (1) |
|
Determining the Length of a String |
|
|
171 | (1) |
|
Copying One String Variable's |
|
|
172 | (1) |
|
Appending One String Variable's Contents to Another String Variable |
|
|
173 | (1) |
|
Appending n Characters to a String Variable |
|
|
174 | (1) |
|
Handling Oversized Strings |
|
|
175 | (1) |
|
Ignoring Case When Determining Whether Strings Are Equal |
|
|
176 | (1) |
|
Obtaining the First Occurrence of a Character Within a String Variable |
|
|
177 | (1) |
|
Finding the Last Occurrence of a Character in a String |
|
|
178 | (1) |
|
Counting the Number of Character Occurrences in a String Variable |
|
|
179 | (1) |
|
Reversing a String Variable's Contents |
|
|
180 | (1) |
|
Comparing Two Character Strings |
|
|
181 | (1) |
|
Comparing the First n Characters of Two Strings |
|
|
182 | (1) |
|
Converting a String Representation of a Number |
|
|
183 | (1) |
|
Locating a Substring Within a String |
|
|
184 | (1) |
|
Returning n Characters from a Point Within the String |
|
|
185 | (1) |
|
Counting the Number of Substring Occurrences |
|
|
186 | (1) |
|
Using the TextBox Control |
|
|
187 | (1) |
|
Using the Rich TextBox Control |
|
|
188 | (1) |
|
Using the Find Method of the Rich TextBox Control |
|
|
189 | (1) |
|
|
190 | (1) |
|
|
191 | (1) |
|
Obtaining the Rightmost Occurrence of a Substring |
|
|
192 | (1) |
|
Removing a Substring From Within a String |
|
|
193 | (1) |
|
Replacing One Substring with Another |
|
|
194 | (1) |
|
Removing Text Within a Rich TexBox Control |
|
|
195 | (1) |
|
Replacing Text Within a Rich TextBox Control with Other Text |
|
|
196 | (1) |
|
Determining Whether a Character is Alphanumeric |
|
|
197 | (1) |
|
Determining Whether a Character Is a Digit |
|
|
198 | (1) |
|
Determining Whether a Character Is Upper-or Lowercase |
|
|
199 | (1) |
|
Determining Whether a String is a Date |
|
|
200 | (1) |
|
Converting a Character to Uppercase or Lowercase |
|
|
201 | (1) |
|
Working with ASCII Characters |
|
|
202 | (1) |
|
Formatting String Variables |
|
|
203 | (1) |
|
Using Select Case with Strings |
|
|
204 | (1) |
|
Using a new-line Variable |
|
|
205 | (1) |
|
Returning Values Using Functions |
|
|
206 | (1) |
|
Specifying Parameter Types |
|
|
207 | (1) |
|
Understanding Local Variables |
|
|
208 | (1) |
|
Understanding Function Overhead |
|
|
209 | (1) |
|
Reducing Overhead by Declaring Parameter Types |
|
|
210 | (1) |
|
Where Visual Basic Places Local Variables |
|
|
211 | (1) |
|
Declaring Global Variables |
|
|
212 | (1) |
|
Using Public Instead of Global |
|
|
213 | (1) |
|
Why You Should Avoid Global Variables Within Your Programs |
|
|
214 | (1) |
|
Resolving Global and Local Variable Name Conflicts |
|
|
215 | (1) |
|
Better Defining a Variable's Scope |
|
|
216 | (1) |
|
|
217 | (1) |
|
|
218 | (1) |
|
Understanding Call by Value |
|
|
219 | (1) |
|
Why Call by Value Prevents Parameter Value Change |
|
|
220 | (1) |
|
Understanding Call By Reference |
|
|
221 | (1) |
|
Changing a Parameter's Value |
|
|
222 | (1) |
|
Changing Only Specific Parameters |
|
|
223 | (1) |
|
Call by Reference Still Uses the Stack |
|
|
224 | (1) |
|
Function Variables that Remember |
|
|
225 | (1) |
|
|
226 | (1) |
|
How Visual Basic Initializes Static Variables |
|
|
227 | (1) |
|
Creating Errors with the Static Keyword |
|
|
228 | (1) |
|
Understanding Global versus Local Procedures |
|
|
229 | (1) |
|
|
230 | (1) |
|
Understanding Formal and Actual Parameters |
|
|
231 | (1) |
|
|
232 | (1) |
|
Using Variant Parameters to Receive Unknown Values |
|
|
233 | (1) |
|
Using Variant Functions to Return Unknown Values |
|
|
234 | (1) |
|
Using Var Type with Variant Parameters |
|
|
235 | (1) |
|
Using the Type Name Member Function |
|
|
236 | (1) |
|
Using Var Type or Type Name With Returned Values |
|
|
237 | (1) |
|
Updating Global Variables within Functions |
|
|
238 | (1) |
|
Using Functions which Change Variables within Arithmetic Expressions |
|
|
239 | (1) |
|
Creating Private Procedures on a Form |
|
|
240 | (1) |
|
Calling Procedures from within Procedures |
|
|
241 | (1) |
|
|
241 | (2) |
|
Understanding the Recursive Factorial Function |
|
|
243 | (1) |
|
One More Recursive Example |
|
|
244 | (1) |
|
Display Values to Better Understand Recursion |
|
|
245 | (1) |
|
Direct and Indirect Recursion |
|
|
246 | (1) |
|
To Use or Not to Use Recursion |
|
|
247 | (1) |
|
|
248 | (1) |
|
Why Recursive Procedures Are Slow |
|
|
249 | (1) |
|
|
250 | (1) |
|
Passing Constants as Parameters |
|
|
251 | (1) |
|
A Subroutine is a Procedure that Returns No Values |
|
|
252 | (1) |
|
A Subroutine is a Procedure that Returns Multiple Values |
|
|
253 | (1) |
|
Using Procedures Without Parameters |
|
|
254 | (1) |
|
Understanding Visual Basic's Categories of Scope |
|
|
255 | (1) |
|
Understanding Name Space and Identifiers |
|
|
256 | (1) |
|
Understanding Identifier Visibility |
|
|
257 | (1) |
|
|
258 | (1) |
|
Functions That Support a Variable Number of Parameters |
|
|
259 | (1) |
|
Supporting a Variable Number of Parameters |
|
|
260 | (1) |
|
Creating a Function That Supports Multiple Parameters of Multiple Types |
|
|
261 | (1) |
|
Using the Optional Keyword |
|
|
262 | (1) |
|
Understanding the IsMissing Member Function |
|
|
263 | (1) |
|
|
264 | (1) |
|
Using Input Box to Receive Input |
|
|
265 | (1) |
|
Using the TextBox Control to Perform Buffered Input |
|
|
266 | (1) |
|
Reading a Character Using Direct I/O |
|
|
267 | (1) |
|
Clearing All Fields on The Screen |
|
|
268 | (1) |
|
Updating a Form's Display |
|
|
269 | (1) |
|
Positioning Your Cursor Using SetFocus |
|
|
270 | (1) |
|
Positioning Your Cursor Using Tab Index |
|
|
271 | (1) |
|
Displaying Output in Color |
|
|
272 | (1) |
|
Controlling Screen Colors |
|
|
273 | (1) |
|
Assigning a Background Color |
|
|
274 | (1) |
|
Creating a Reusable Math Module |
|
|
275 | (1) |
|
|
276 | (1) |
|
|
277 | (1) |
|
|
278 | (1) |
|
|
279 | (1) |
|
Rounding a Floating-Point Value Up |
|
|
280 | (1) |
|
Working With an Exponential |
|
|
281 | (1) |
|
Calculating the Natural Log |
|
|
282 | (1) |
|
Calculating the Result of log10x |
|
|
283 | (1) |
|
Determining Maximum and Minimum Values |
|
|
284 | (1) |
|
Breaking a Floating-Point Value into Integer and Fractional Components |
|
|
285 | (1) |
|
Calculating the Result of xn |
|
|
286 | (1) |
|
Generating a Random Number |
|
|
287 | (1) |
|
Mapping Random Values to a Specific Range |
|
|
288 | (1) |
|
Seeding the Random Number Generator |
|
|
289 | (1) |
|
Calculating a Value's Square Root |
|
|
290 | (1) |
|
Using the Tangent of an Angle |
|
|
291 | (1) |
|
Performing a Net Present Value Calculation |
|
|
292 | (1) |
|
Performing a Rate Calculation |
|
|
293 | (1) |
|
Creating a Customized Math Error Handler |
|
|
294 | (1) |
|
|
295 | (1) |
|
|
296 | (1) |
|
|
297 | (1) |
|
Understanding an Array's Storage Requirements |
|
|
298 | (1) |
|
|
299 | (1) |
|
|
300 | (1) |
|
Looping Through Array Elements |
|
|
301 | (1) |
|
Use Constants to Define Arrays |
|
|
302 | (1) |
|
Passing an Array to a Function |
|
|
303 | (1) |
|
Revisiting Arrays and Functions |
|
|
304 | (1) |
|
Passing Arrays to Procedures |
|
|
305 | (1) |
|
Determining How Many Elements an Array Can Hold |
|
|
306 | (1) |
|
Allocating Arrays Dynamically |
|
|
307 | (1) |
|
Creating Arrays From Delimited Strings |
|
|
308 | (1) |
|
Understanding Multidimensional Arrays |
|
|
309 | (1) |
|
Understanding Rows and Columns |
|
|
310 | (1) |
|
Accessing Elements in a Two-Dimensional Array |
|
|
311 | (1) |
|
Initializing Elements in a Two-Dimensional Array |
|
|
312 | (1) |
|
Determining the Amount of Memory a Multidimensional Array Consumes |
|
|
313 | (1) |
|
Looping Through a Two-Dimensional Array |
|
|
314 | (1) |
|
Traversing a Three-Dimensional Array |
|
|
315 | (1) |
|
Passing a Two-Dimensional Array to a Function |
|
|
316 | (1) |
|
Understanding How Visual Basic Stores Multidimensional Arrays |
|
|
317 | (1) |
|
Arrays of Structures of Arrays |
|
|
318 | (1) |
|
Searching an Array for a Specific Value |
|
|
319 | (1) |
|
Understanding a Binary Search |
|
|
320 | (1) |
|
|
321 | (1) |
|
|
322 | (1) |
|
Understanding the Bubble Sort |
|
|
323 | (1) |
|
Putting a Bubble Sort to Use |
|
|
324 | (1) |
|
Understanding the Selection Sort |
|
|
325 | (1) |
|
Putting a Selection Sort to Use |
|
|
326 | (1) |
|
Understanding the Shell Sort |
|
|
327 | (1) |
|
Putting a Shell Sort to Use |
|
|
328 | (1) |
|
Understanding the Quick Sort |
|
|
329 | (1) |
|
Putting a Quick Sort to Use |
|
|
330 | (1) |
|
Problems with Previous Sorting Solutions |
|
|
331 | (1) |
|
Sorting an Array of Character Strings |
|
|
332 | (1) |
|
Sorting Arrays with Quick_Sort |
|
|
333 | (1) |
|
Searching an Array with Seq_One_Find |
|
|
334 | (1) |
|
Using the TypeName Member Function |
|
|
335 | (1) |
|
Searching a Sorted Array with Bin_Search |
|
|
336 | (1) |
|
Determining the Number of Array Elements |
|
|
337 | (1) |
|
Looping Through an Array of Character Strings |
|
|
338 | (1) |
|
Setting Optional Ranges for Arrays |
|
|
339 | (1) |
|
|
340 | (1) |
|
A Structure is a Template for Variable Declarations |
|
|
341 | (1) |
|
A Structure Tag is the Structure's Name |
|
|
342 | (1) |
|
Declaring a Structure Variable |
|
|
343 | (1) |
|
Using the Public---Private Keywords With Structures |
|
|
344 | (1) |
|
Understanding Structure Members |
|
|
345 | (1) |
|
|
346 | (1) |
|
Putting a Structure to Use |
|
|
347 | (1) |
|
Passing a Structure to a Function |
|
|
348 | (1) |
|
Changing a Structure Within a Function |
|
|
349 | (1) |
|
Structure Definitions Have Scope |
|
|
350 | (1) |
|
|
351 | (1) |
|
Performing Structure Input/Output |
|
|
352 | (1) |
|
|
353 | (1) |
|
Structures That Contain Arrays |
|
|
354 | (1) |
|
Creating an Array of Structures |
|
|
355 | (1) |
|
Using Files, Directories, and Disks---The Easy Way and the Hard Way |
|
|
356 | (1) |
|
Using the DriveListBox Control |
|
|
357 | (1) |
|
Using the DriveListBox Control to Change the Drive |
|
|
358 | (1) |
|
The DirectoryListBox Control |
|
|
359 | (1) |
|
Changing the Default Directory |
|
|
360 | (1) |
|
Using the FileListBox Control |
|
|
361 | (1) |
|
Showing Only Some Files in the List |
|
|
362 | (1) |
|
Understanding the Common Dialog Control |
|
|
363 | (1) |
|
Using Patterns with the CommonDialog Control |
|
|
364 | (1) |
|
Setting the Default Path for the CommonDialog Control |
|
|
365 | (1) |
|
Returning the Selected File and Path |
|
|
366 | (1) |
|
|
367 | (1) |
|
Canceling the Open or Save As Processes Using Cancel |
|
|
368 | (1) |
|
Understanding the Windows API |
|
|
369 | (1) |
|
|
370 | (1) |
|
Using the GetCurrentDirectory API Function |
|
|
371 | (1) |
|
Writing a Wrapper Function |
|
|
372 | (1) |
|
Using the SetCurrentDirectory API Function |
|
|
373 | (1) |
|
Using the GetDiskFreeSpace API Function |
|
|
374 | (1) |
|
Using the GetVolumeInformation API Function |
|
|
375 | (1) |
|
Using the GetDriveType API Function |
|
|
376 | (1) |
|
Trapping for a Drive Not Ready |
|
|
377 | (1) |
|
Renaming Files From Within Your Programs |
|
|
378 | (1) |
|
Deleting Files from Within a Program |
|
|
379 | (1) |
|
Deleting Directories from Within a Program |
|
|
380 | (1) |
|
Setting a File's Access Mode |
|
|
381 | (1) |
|
Determining a File's Size |
|
|
382 | (1) |
|
|
383 | (1) |
|
Using the Close Statement |
|
|
384 | (1) |
|
Using Sequential File Access to Read From a File |
|
|
385 | (1) |
|
Using the EOF Function When Reading Files |
|
|
386 | (1) |
|
Using Sequential File Access to Write To a File |
|
|
387 | (1) |
|
Using LOF and Loc to Read Binary Files |
|
|
388 | (1) |
|
Using Input and Input # to Read From Files |
|
|
389 | (1) |
|
Using Write # To Output to a Sequential File |
|
|
390 | (1) |
|
Revisiting Structures and File I/O |
|
|
391 | (1) |
|
Using Put to Write Data to a Random-Access File |
|
|
392 | (1) |
|
Using Get to Retrieve Records from a Random-Access File |
|
|
393 | (1) |
|
Using the Seek Statement to Move Through Random-Access Files |
|
|
394 | (1) |
|
|
395 | (1) |
|
|
396 | (1) |
|
|
397 | (1) |
|
Minimize File I/O Operations |
|
|
398 | (1) |
|
Using the ChDrive and ChDir Statements |
|
|
399 | (1) |
|
|
400 | (1) |
|
|
401 | (1) |
|
Removing a Directory Tree Using Recursion |
|
|
402 | (1) |
|
|
403 | (1) |
|
Obtaining a File's Date and Time Stamp |
|
|
404 | (1) |
|
Using Dir to Locate Directories and Files |
|
|
405 | (1) |
|
Sorting the Returned Values for Dir Into Files and Directories |
|
|
406 | (1) |
|
Using Dir to Locate Files |
|
|
407 | (1) |
|
Copying Files from Within Your Programs |
|
|
408 | (1) |
|
Moving Files From Within Your Programs |
|
|
409 | (1) |
|
|
410 | (1) |
|
Using the FindFirstFile Function |
|
|
411 | (1) |
|
Finding the Remaining Occurrences with FindNextFile |
|
|
412 | (1) |
|
Searching the Entire Directory Tree |
|
|
413 | (1) |
|
Creating a User Interface With The Files Returned from a Find Operation |
|
|
414 | (1) |
|
Using the Findxxx Functions to Locate Directories |
|
|
415 | (1) |
|
Using the Find Functions to Recursively List All Directories in a Tree |
|
|
416 | (1) |
|
Removing a Directory Tree Revisited: Using Recursion |
|
|
417 | (1) |
|
Obtaining the Current System Date |
|
|
418 | (1) |
|
Obtaining the Current System Time |
|
|
419 | (1) |
|
Returning a Date Value Representing the Current Date and Time |
|
|
420 | (1) |
|
Delaying a Specific Number of Milliseconds |
|
|
421 | (1) |
|
Delaying an Approximate Number of Milliseconds |
|
|
422 | (1) |
|
Limitations of Sleep and DoEvents |
|
|
423 | (1) |
|
Determining Your Program's Processing Time |
|
|
424 | (1) |
|
Comparing Two Times Revisited |
|
|
425 | (1) |
|
Using DoEvents to Delay A Specific Number of Seconds |
|
|
426 | (1) |
|
Converting a Date to a String and Back |
|
|
427 | (1) |
|
Verifying a String as a Date |
|
|
428 | (1) |
|
Setting the System Date and Time |
|
|
429 | (1) |
|
Setting the Date and Time Using Integer Values |
|
|
430 | (1) |
|
|
431 | (1) |
|
Segmenting a Date into its Component Parts |
|
|
432 | (1) |
|
Understanding the Single Document Interface |
|
|
433 | (1) |
|
|
434 | (1) |
|
Understanding the Show Method |
|
|
435 | (1) |
|
Understanding the Load Statement |
|
|
436 | (1) |
|
Understanding Unload and Hide |
|
|
437 | (1) |
|
Basics of Good Form Design |
|
|
438 | (1) |
|
|
439 | (1) |
|
|
440 | (1) |
|
Understanding Control Arrays |
|
|
441 | (1) |
|
|
442 | (1) |
|
|
443 | (1) |
|
Understanding Form Arrays |
|
|
444 | (1) |
|
Understanding the Creation of an MDI Interface |
|
|
445 | (1) |
|
|
446 | (1) |
|
Using a Boolean Array to Manage the Form Array |
|
|
447 | (1) |
|
Using a Control Array to Create Objects at Run Time |
|
|
448 | (1) |
|
Removing Objects from a Control Array at Run Time |
|
|
449 | (1) |
|
|
450 | (1) |
|
|
451 | (1) |
|
|
452 | (1) |
|
Adding Functionality to the Menu |
|
|
453 | (1) |
|
Using the Enabled Property with Menus |
|
|
454 | (1) |
|
Using the Checked Property with Menus |
|
|
455 | (1) |
|
|
456 | (1) |
|
Understanding Accelerator Keys |
|
|
457 | (1) |
|
Using the Tile and Cascade Commands |
|
|
458 | (1) |
|
Understanding Menu Arrays |
|
|
459 | (1) |
|
|
460 | (1) |
|
Understanding the Difference Between Menus and Pop-up Menus |
|
|
461 | (1) |
|
|
462 | (1) |
|
Adding Code to the Pop-Up Menu Options |
|
|
463 | (1) |
|
Implementing the Pop-up Menu |
|
|
464 | (1) |
|
Creating Intelligent Contextual Menus |
|
|
465 | (1) |
|
Using the Boldcommand Property |
|
|
466 | (1) |
|
Menus on Child Forms Transpose to the Parent Form |
|
|
467 | (1) |
|
Using Negotiation with Menus |
|
|
468 | (1) |
|
Displaying Multiple Modal Forms |
|
|
469 | (1) |
|
Displaying Modeless Forms After Displaying a Modal Form |
|
|
470 | (1) |
|
Scope of Procedures Within a Form |
|
|
471 | (1) |
|
Exposing Values to Outside Entities |
|
|
472 | (1) |
|
Using Public Events With Outside Entities |
|
|
473 | (1) |
|
Understanding the ActiveForm Property |
|
|
474 | (1) |
|
Understanding the Load, Initialize and Activate From Events |
|
|
475 | (1) |
|
Understanding the Resize Event |
|
|
476 | (1) |
|
Understanding the Query Unload and the Unload Events |
|
|
477 | (1) |
|
Understanding the Deactivate and LostFocus Form Events |
|
|
478 | (1) |
|
Understanding the Terminate Event |
|
|
479 | (1) |
|
|
480 | (1) |
|
Controlling the Height and Width of Forms |
|
|
481 | (1) |
|
|
482 | (1) |
|
|
483 | (1) |
|
Using Containers to Manage the Form |
|
|
484 | (1) |
|
Using the GetSystemMetrics API Function |
|
|
485 | (1) |
|
Using GetSystemMetrics Together With Resize |
|
|
486 | (1) |
|
Using the Hide Method with SDI Forms |
|
|
487 | (1) |
|
Understanding the MouseMove Event |
|
|
488 | (1) |
|
The MousePointer Property |
|
|
489 | (1) |
|
Using the MouseIcon Property |
|
|
490 | (1) |
|
Using the Icon Property with Forms |
|
|
491 | (1) |
|
Using the Toolbar Control |
|
|
492 | (1) |
|
Understanding Objects and Collections |
|
|
493 | (1) |
|
Using the Buttons Collection and the Button Object |
|
|
494 | (1) |
|
Creating a Toolbar With Text Buttons |
|
|
495 | (1) |
|
Understanding the ImageList Control |
|
|
496 | (1) |
|
Using the ImageList and Toolbar Controls Together |
|
|
497 | (1) |
|
Using Toolbars in MDI Programs |
|
|
498 | (1) |
|
Toolbars on Both Parent and Child Forms |
|
|
499 | (1) |
|
Placing Toolbars only on the Parent Form |
|
|
500 | (1) |
|
|
501 | (1) |
|
Using Toolbars and Menus in Conjunction |
|
|
502 | (1) |
|
Maintaining a Constant Image Size |
|
|
503 | (1) |
|
|
504 | (1) |
|
Distributing Icons With Programs |
|
|
505 | (1) |
|
Understanding the StatusBar Control |
|
|
506 | (1) |
|
Understanding the Panel Object, Panels Collection |
|
|
507 | (1) |
|
Creating a StatusBar Control |
|
|
508 | (1) |
|
Writing an UpdateStatusBar Subroutine |
|
|
509 | (1) |
|
Sectioning the Status Bar |
|
|
510 | (1) |
|
Using MouseMove With the Status Bar |
|
|
511 | (1) |
|
Using Multiple StatusBars |
|
|
512 | (1) |
|
Revisiting Public versus Private Functions |
|
|
513 | (1) |
|
Passing Object Variables to Procedures |
|
|
514 | (1) |
|
Passing Control Arrays Into Procedures |
|
|
515 | (1) |
|
Introducing Public Controls |
|
|
516 | (1) |
|
Sensing Keypresses with the KeyPress Event |
|
|
517 | (1) |
|
Using KeyPress with a TextBox to Receive a User Password |
|
|
518 | (1) |
|
Understanding the KeyDown and KeyUp Events |
|
|
519 | (1) |
|
Setting a Form's WindowState Property |
|
|
520 | (1) |
|
Controlling the Caption of a Form |
|
|
521 | (1) |
|
Creating an IsDirty Property |
|
|
522 | (1) |
|
|
523 | (1) |
|
|
524 | (1) |
|
Revisiting the CommonDialog Control |
|
|
525 | (1) |
|
Using the CommonDialog Control to Print |
|
|
526 | (1) |
|
Printing Text to the Default Printer |
|
|
527 | (1) |
|
Understanding the Printer object, Printers collection |
|
|
528 | (1) |
|
Using the For Each-Next Construction |
|
|
529 | (1) |
|
Understanding the EndDoc Method |
|
|
530 | (1) |
|
Using the CommonDialog Control to Set Fonts |
|
|
531 | (1) |
|
Setting Fonts in a Rich TextBox with the CommonDialog |
|
|
532 | (1) |
|
Using the Change Event with Edit Fields |
|
|
533 | (1) |
|
Understanding Libraries and Reusable Object Code |
|
|
534 | (1) |
|
Understanding ActiveX DLLs |
|
|
535 | (1) |
|
Creating and Using Project Groups |
|
|
536 | (1) |
|
Displaying Predefined Error Messages |
|
|
537 | (1) |
|
Understanding Portability |
|
|
538 | (1) |
|
Branching and Returning Within a Procedure |
|
|
539 | (1) |
|
Using Structure Variables Instead of Constants |
|
|
540 | (1) |
|
Visual Basic's Predefined Constants |
|
|
541 | (1) |
|
|
542 | (1) |
|
Putting an Enumerated Type to Use |
|
|
543 | (1) |
|
Understanding an Enumerated Value |
|
|
544 | (1) |
|
Assigning a Specific Value to an Enumerated Type |
|
|
545 | (1) |
|
Understanding Child Processes |
|
|
546 | (1) |
|
|
547 | (1) |
|
Using a Temporary File to Pass Data to the Child Process |
|
|
548 | (1) |
|
Using AppActivate to Activate the Child Process |
|
|
549 | (1) |
|
Using Shell to Run Programs Sequentially |
|
|
550 | (1) |
|
Using Break for Debugging |
|
|
551 | (1) |
|
|
552 | (1) |
|
|
553 | (1) |
|
Stepping Into Your Program Code |
|
|
554 | (1) |
|
Stepping Over a Procedure's Code |
|
|
555 | (1) |
|
|
556 | (1) |
|
|
557 | (1) |
|
Setting Breakpoints Within the Program |
|
|
558 | (1) |
|
|
559 | (1) |
|
Using Labels for Error-Trapping Routines |
|
|
560 | (1) |
|
Using Labels for Go To Loops |
|
|
561 | (1) |
|
Understanding Critical Errors |
|
|
562 | (1) |
|
Using the Timer Event to Autosave Information |
|
|
563 | (1) |
|
Understanding the Timer Control |
|
|
564 | (1) |
|
Understanding Invariant Code |
|
|
565 | (1) |
|
Understanding Code Compaction |
|
|
566 | (1) |
|
Understanding Loop Compaction |
|
|
567 | (1) |
|
Using Common Subexpression Elimination |
|
|
568 | (1) |
|
Grasping Visual Basic's Basic Types |
|
|
569 | (1) |
|
Understanding Derived Types |
|
|
570 | (1) |
|
Rules for Using Initializers |
|
|
571 | (1) |
|
Contrasting Declarations and Definitions |
|
|
572 | (1) |
|
Declaring Variables Where You Need Them |
|
|
573 | (1) |
|
Revisiting the Optional Keyword |
|
|
574 | (1) |
|
Revisiting the ParamArray Keyword |
|
|
575 | (1) |
|
Using Default Values with Optional Parameters |
|
|
576 | (1) |
|
|
577 | (1) |
|
Understanding Lazy (or Short-Circuit) Evaluation |
|
|
578 | (1) |
|
Creating an Instance of an Object with the New Operator |
|
|
579 | (1) |
|
Using Functions as Members Within Structures |
|
|
580 | (1) |
|
Different Structures with the Same Member Names |
|
|
581 | (1) |
|
|
582 | (1) |
|
Understanding Object-Oriented Programming |
|
|
583 | (1) |
|
Understanding Why Visual Basic is not Truly Object-Oriented |
|
|
584 | (1) |
|
Understanding Visual Basic Classes |
|
|
585 | (1) |
|
|
586 | (1) |
|
Creating Classes Using the Class Builder Utility |
|
|
587 | (1) |
|
Understanding the Public Label |
|
|
588 | (1) |
|
Understanding Information Hiding |
|
|
589 | (1) |
|
Using the Private Keyword Within a Class |
|
|
590 | (1) |
|
Using Public and Private Data |
|
|
591 | (1) |
|
Public Methods Are Often Called Interface Functions |
|
|
592 | (1) |
|
|
593 | (1) |
|
Using the Property Let and Property Get Methods |
|
|
594 | (1) |
|
Understanding Object Instances |
|
|
595 | (1) |
|
Creating Object Instances |
|
|
596 | (1) |
|
Understanding Class Scope |
|
|
597 | (1) |
|
Creating an Array of Class Variables |
|
|
598 | (1) |
|
|
599 | (1) |
|
Understanding Encapsulation |
|
|
600 | (1) |
|
|
601 | (1) |
|
Ordering Public and Private Members |
|
|
602 | (1) |
|
Understanding Default Scope with Class Modules |
|
|
603 | (1) |
|
Understanding the Static Store |
|
|
604 | (1) |
|
|
605 | (1) |
|
Understanding the Difference Between ActiveX and OLE 2.0 |
|
|
606 | (1) |
|
Using the WithEvents Property in a Dimension Statement |
|
|
607 | (1) |
|
Using the ActiveX Controls Provided with Visual Basic |
|
|
608 | (1) |
|
|
609 | (1) |
|
Understanding the ComboBox Control |
|
|
610 | (1) |
|
Using the Change and Click Events with the ComboBox |
|
|
611 | (1) |
|
Using ComboBoxes to Change Information on a Form |
|
|
612 | (1) |
|
Deciding Between Combo and ListBoxes |
|
|
613 | (1) |
|
Understanding the MaskEdBox Control |
|
|
614 | (1) |
|
Using the MaskEdBox Control to Validate Data |
|
|
615 | (1) |
|
Revisiting Reusable Objects |
|
|
616 | (1) |
|
|
617 | (1) |
|
Using a Control Event to Trigger Other Events |
|
|
618 | (1) |
|
Using LostFocus Together with ListIndex to Start Dependent Forms |
|
|
619 | (1) |
|
Understanding Forms as Classes |
|
|
620 | (1) |
|
Understanding an Entirely Dialog Box-Based Application |
|
|
621 | (1) |
|
Changing the Startup Location of a Program |
|
|
622 | (1) |
|
Understanding Initialization Routines |
|
|
623 | (1) |
|
Placing Global Variables and Procedures in Multiple Locations |
|
|
624 | (1) |
|
Using Functions to Return a User-Defined Class or Structure |
|
|
625 | (1) |
|
Understanding the Picture Box Control |
|
|
626 | (1) |
|
Using a PictureBox Control |
|
|
627 | (1) |
|
Understanding the Image Control |
|
|
628 | (1) |
|
Displaying Pictures on a Form |
|
|
629 | (1) |
|
|
630 | (1) |
|
|
631 | (1) |
|
Using Checkboxes to Obtain Boolean Values |
|
|
632 | (1) |
|
Using Multiple Groups of Option Buttons on a Single Form |
|
|
633 | (1) |
|
Using Horizontal and Vertical Scroll Bars |
|
|
634 | (1) |
|
Understanding the Timer Control |
|
|
635 | (1) |
|
Understanding Custom Controls |
|
|
636 | (1) |
|
|
637 | (1) |
|
Revisiting Rich TextBoxes |
|
|
638 | (1) |
|
Creating the Basics of the Interface |
|
|
639 | (1) |
|
Adding Functionality to the MDN Program |
|
|
640 | (1) |
|
Adding the Find Dialog Box |
|
|
641 | (1) |
|
Improving the Multiple-Document Notepad Application |
|
|
642 | (1) |
|
Revisiting the Query-Unload Event |
|
|
643 | (1) |
|
Understanding the Relationship between the RichTextBox and the CommonDialog |
|
|
644 | (1) |
|
Understanding the Progress Bar |
|
|
645 | (1) |
|
Using the Progress Bar Control |
|
|
646 | (1) |
|
Using the Hourglass Mouse Pointer |
|
|
647 | (1) |
|
Using the Other MousePointer Properties |
|
|
648 | (1) |
|
Using Global Variables to Protect Against Interruptions |
|
|
649 | (1) |
|
|
650 | (1) |
|
Understanding Database Access |
|
|
651 | (1) |
|
Fundamental Principles of Database Design |
|
|
652 | (1) |
|
Understanding Relational Databases |
|
|
653 | (1) |
|
Understanding Normalization |
|
|
654 | (1) |
|
Minimizing Your Database's Storage Requirements |
|
|
655 | (1) |
|
|
656 | (1) |
|
Understanding the System MDW File |
|
|
657 | (1) |
|
|
658 | (1) |
|
Understanding how Access SQL is Different from ANSI SQL |
|
|
659 | (1) |
|
Getting Started with the Visual Data Manager |
|
|
660 | (1) |
|
Understanding DAO and ODBC |
|
|
661 | (1) |
|
|
662 | (1) |
|
Using the SQL Create Table Statement |
|
|
663 | (1) |
|
Understanding and Formatting SQL Create Table Statements |
|
|
664 | (1) |
|
Understanding the Execute Method |
|
|
665 | (1) |
|
Creating Indexes Using Constraint |
|
|
666 | (1) |
|
Using the SQL Create Index Statement |
|
|
667 | (1) |
|
Determining Which Field to Index |
|
|
668 | (1) |
|
Understanding Primary Keys |
|
|
669 | (1) |
|
Understanding the Workspace Object |
|
|
670 | (1) |
|
Using the Open Database Method |
|
|
671 | (1) |
|
|
672 | (1) |
|
Understanding the Database Object |
|
|
673 | (1) |
|
Understanding the Recordset Object |
|
|
674 | (1) |
|
Using the OpenRecordset Method |
|
|
675 | (1) |
|
Understanding the SQL Select Statement |
|
|
676 | (1) |
|
|
677 | (1) |
|
Understanding the Order By Clause |
|
|
678 | (1) |
|
Understanding the Where Clause |
|
|
679 | (1) |
|
Understanding Inner Joins |
|
|
680 | (1) |
|
Understanding Left and Right Joins |
|
|
681 | (1) |
|
Understanding Set with Databases |
|
|
682 | (1) |
|
Understanding the QueryDeef Object |
|
|
683 | (1) |
|
Using the RecordCount Property |
|
|
684 | (1) |
|
Understanding the Move Methods |
|
|
685 | (1) |
|
Using the BOF and EOF Properties |
|
|
686 | (1) |
|
Determining if a Recordset is Empty |
|
|
687 | (1) |
|
|
688 | (1) |
|
|
689 | (1) |
|
|
690 | (1) |
|
|
691 | (1) |
|
|
692 | (1) |
|
Understanding Recordset Creation Errors |
|
|
693 | (1) |
|
|
694 | (1) |
|
|
695 | (1) |
|
Understanding Permissions |
|
|
696 | (1) |
|
Understanding DAO Documents and Containers |
|
|
697 | (1) |
|
|
698 | (1) |
|
Using the Update and Edit Methods |
|
|
699 | (1) |
|
|
700 | (1) |
|
|
701 | (1) |
|
Understanding Transaction Processing |
|
|
702 | (1) |
|
Using Begin Trans and CommitTrans |
|
|
703 | (1) |
|
Using the Rollback Method |
|
|
704 | (1) |
|
Understanding the Data Control |
|
|
705 | (1) |
|
Using the Data Control with Stored Queries |
|
|
706 | (1) |
|
Handling BOF and EOF with the Data Control |
|
|
707 | (1) |
|
Understanding the RecordSource Property |
|
|
708 | (1) |
|
Understanding Data-Bound Controls |
|
|
709 | (1) |
|
Using Multiple Data Controls |
|
|
710 | (1) |
|
Understanding the Data-Bound Grid Control |
|
|
711 | (1) |
|
Using the Data-Bound Grid Control |
|
|
712 | (1) |
|
Sizing the Width of the Data-Bound Grid |
|
|
713 | (1) |
|
Placing a RecordCount Caption in the Data Control |
|
|
714 | (1) |
|
Changing the RecordCount Caption Using the Grid Control |
|
|
715 | (1) |
|
Understanding the Data-Bound ListBox Control |
|
|
716 | (1) |
|
Using the Data-Bound List Control |
|
|
717 | (1) |
|
Linking the DBList Control to Another Control |
|
|
718 | (1) |
|
Understanding the Data-Bound ComboBox Control |
|
|
719 | (1) |
|
Using the Data-Bound ComboBox Control |
|
|
720 | (1) |
|
Understanding the Clone Method |
|
|
721 | (1) |
|
|
722 | (1) |
|
Using the DataChanged Property |
|
|
723 | (1) |
|
Understanding SQL-Transact Statements |
|
|
724 | (1) |
|
Understanding Update Queries |
|
|
725 | (1) |
|
|
726 | (1) |
|
Understanding Delete Queries |
|
|
727 | (1) |
|
Understanding Union Queries |
|
|
728 | (1) |
|
Understanding the Group By Statement |
|
|
729 | (1) |
|
Using the Group By Statement |
|
|
730 | (1) |
|
Understanding the SQL Aggregate Functions |
|
|
731 | (1) |
|
|
732 | (1) |
|
Understanding the Having Statement |
|
|
733 | (1) |
|
Using Variables in Queries |
|
|
734 | (1) |
|
Creating New Queries Using a Query Result |
|
|
735 | (1) |
|
Using On Error-Resume with SQL Queries |
|
|
736 | (1) |
|
Preventing Errors By Checking Values |
|
|
737 | (1) |
|
Creating Backups of Databases |
|
|
738 | (1) |
|
Introducing Client-Server Databases |
|
|
739 | (1) |
|
Understanding Remote Data Objects |
|
|
740 | (1) |
|
Understanding the RemoteData Control |
|
|
741 | (1) |
|
Creating Recordsets with the RemoteData Control |
|
|
742 | (1) |
|
Understanding the RemoteData Constants |
|
|
743 | (1) |
|
Understanding the rdoEnvironment Object |
|
|
744 | (1) |
|
Establishing a Remote Data Connection |
|
|
745 | (1) |
|
Maintaining Information About an Open Connection |
|
|
746 | (1) |
|
Understanding the Field Object |
|
|
747 | (1) |
|
Determining When to Use Ordinal Numbers with Collections |
|
|
748 | (1) |
|
Using Field Names to Manage Databases |
|
|
749 | (1) |
|
Understanding Record Locking |
|
|
750 | (1) |
|
Saving Records from Unbound Controls |
|
|
751 | (1) |
|
Updating Records from Unbound Controls |
|
|
752 | (1) |
|
Revisiting the Importance of Databases |
|
|
753 | (1) |
|
Understanding the TreeView Control |
|
|
754 | (1) |
|
Understanding the Node Object |
|
|
755 | (1) |
|
Using the TreeView Control |
|
|
756 | (1) |
|
Understanding the Add Method of the Nodes Collection |
|
|
757 | (1) |
|
Adding Images to the TreeView Control |
|
|
758 | (1) |
|
Using the ProgressBar while Populating the TreeView Control |
|
|
759 | (1) |
|
Filling the TreeView Control From a Recordset |
|
|
760 | (1) |
|
Understanding Visual Basic and the Internet |
|
|
761 | (1) |
|
Understanding the MSComm Control |
|
|
762 | (1) |
|
Understanding the CommEvent Property |
|
|
763 | (1) |
|
|
764 | (1) |
|
Understanding the OnComm Event |
|
|
765 | (1) |
|
|
766 | (1) |
|
Understanding the RThreshold and SThreshold Properties |
|
|
767 | (1) |
|
Transmitting Data with the MSComm Control |
|
|
768 | (1) |
|
Receiving Data Using the MSComm Control |
|
|
769 | (1) |
|
Creating a Simple Terminal Program |
|
|
770 | (1) |
|
Creating Automated Transmission Events |
|
|
771 | (1) |
|
Understanding the Winsock Control |
|
|
772 | (1) |
|
Using the Winsock Control |
|
|
773 | (1) |
|
Understanding the GetData Method |
|
|
774 | (1) |
|
Understanding the SendComplete and SendProgress Events |
|
|
775 | (1) |
|
Returning a Handle from a Winsock Contro |
|
|
776 | (1) |
|
Using the Winsock Control on the Server Machine |
|
|
777 | (1) |
|
Returning the Current State of the Winsock Control |
|
|
778 | (1) |
|
Understanding the Internet Transfer Control |
|
|
779 | (1) |
|
Understanding the Execute Method |
|
|
780 | (1) |
|
Using Execute with HTTP Commands |
|
|
781 | (1) |
|
Using Execute with FTP Commands |
|
|
782 | (1) |
|
Ensuring your Name and Password are Maintained |
|
|
783 | (1) |
|
Connecting to the Internet |
|
|
784 | (1) |
|
Navigating the FTP Server |
|
|
785 | (1) |
|
Using Get to Retrieve a File from an FTP Server |
|
|
786 | (1) |
|
Writing to the FTP Server |
|
|
787 | (1) |
|
Writing an Automatic FTP Upload and Retrieve Program |
|
|
788 | (1) |
|
|
789 | (1) |
|
Understanding the WebBrowser Control |
|
|
790 | (1) |
|
Using the WebBrowser Control |
|
|
791 | (1) |
|
Understanding the Navigate Method |
|
|
792 | (1) |
|
Understanding the NavigateComplete Event |
|
|
793 | (1) |
|
Using the Location URL Property |
|
|
794 | (1) |
|
Using the ProgressChange Event |
|
|
795 | (1) |
|
Using the LocationName Property |
|
|
796 | (1) |
|
Understanding the DownloadBegin and DownloadComplete Events |
|
|
797 | (1) |
|
|
798 | (1) |
|
Accessing FTP From Within the WebBrowser Control |
|
|
799 | (1) |
|
Creating Multiple Web Browsers |
|
|
800 | (1) |
|
|
801 | (1) |
|
|
802 | (1) |
|
Writing the Visual Basic Internet Browser |
|
|
803 | (1) |
|
|
804 | (1) |
|
Understanding the Different Types of ActiveX |
|
|
805 | (1) |
|
Determining Whether to use an ActiveX Control, EXE, or DLL |
|
|
806 | (1) |
|
Understanding the UserControl Object |
|
|
807 | (1) |
|
Using Visual Basic to Create Controls |
|
|
808 | (1) |
|
Understanding Visual Basic Control Creation Edition |
|
|
809 | (1) |
|
Understanding ActiveX Security |
|
|
810 | (1) |
|
|
811 | (1) |
|
|
812 | (1) |
|
CABbing a Sample ActiveX Control |
|
|
813 | (1) |
|
Using the Wizard to Create an ActiveX Control |
|
|
814 | (1) |
|
Understanding the Create Custom Interface Members Dialog Box |
|
|
815 | (1) |
|
|
816 | (1) |
|
|
817 | (1) |
|
|
818 | (1) |
|
Beginning to Create the ActiveX Control |
|
|
819 | (1) |
|
Making the Control Functional |
|
|
820 | (1) |
|
|
821 | (1) |
|
Understanding ActiveX Control Events |
|
|
822 | (1) |
|
Understanding an ActiveX Control's Lifetime |
|
|
823 | (1) |
|
Responding to non-LifeTime Events |
|
|
824 | (1) |
|
Understanding the RaiseEvent Statement |
|
|
825 | (1) |
|
Using the Event Statement |
|
|
826 | (1) |
|
Adding Functionality to the Control |
|
|
827 | (1) |
|
Executing the ColorfulCmdButton Control's Container |
|
|
828 | (1) |
|
Understanding the Property Page Wizard |
|
|
829 | (1) |
|
Using the Property Page Wizard |
|
|
830 | (1) |
|
Understanding ActiveX Documents |
|
|
831 | (1) |
|
Creating an ActiveX Document |
|
|
832 | (1) |
|
Targeting a Container for your ActiveX Document |
|
|
833 | (1) |
|
Discovering the Target Application's Object Model |
|
|
834 | (1) |
|
Understanding Variations in the Object Model |
|
|
835 | (1) |
|
Understanding the UserDocument Object |
|
|
836 | (1) |
|
Using the UserDocument Object |
|
|
837 | (1) |
|
Testing the ActiveX Document |
|
|
838 | (1) |
|
Debugging the FirstACXDoc ActiveX Document |
|
|
839 | (1) |
|
Adding a Second ActiveX Document to the Project |
|
|
840 | (1) |
|
Running the Two Document Project |
|
|
841 | (1) |
|
Understanding ActiveX DLL Files |
|
|
842 | (1) |
|
Creating the Class for your ActiveX DLL File |
|
|
843 | (1) |
|
Creating the Properties and Methods for the Happy Class |
|
|
844 | (1) |
|
|
845 | (1) |
|
Creating the MyTest Project |
|
|
846 | (1) |
|
Instantiating the MyTest Class |
|
|
847 | (1) |
|
Executing the MyTest Project |
|
|
848 | (1) |
|
Understanding Object Lifetimes |
|
|
849 | (1) |
|
Adding the SelfAbsorbed Property to the MyTest Class |
|
|
850 | (1) |
|
Understanding Circular References |
|
|
851 | (1) |
|
Understanding ActiveX Component Naming Guidelines |
|
|
852 | (1) |
|
Understanding Well-Behaved Components |
|
|
853 | (1) |
|
|
854 | (1) |
|
Understanding the Benefits of VB Script |
|
|
855 | (1) |
|
Using VBScript Within HTML |
|
|
856 | (1) |
|
Responding to Events in VBScript |
|
|
857 | (1) |
|
Executing the Hello. HTML File |
|
|
858 | (1) |
|
|
859 | (1) |
|
Implementing Mathematical Functions in VBScript |
|
|
860 | (1) |
|
Implementing Events and Operations |
|
|
861 | (1) |
|
Using Option Explicit with VBScript |
|
|
862 | (1) |
|
|
863 | (1) |
|
Using VBScript with ActiveX Controls |
|
|
864 | (1) |
|
Accessing ActiveX Controls From VBScript |
|
|
865 | (1) |
|
Using the Label and Timer Controls within an HTML Page |
|
|
866 | (1) |
|
Referencing ActiveX Controls |
|
|
867 | (1) |
|
Understanding the Param Name Tag |
|
|
868 | (1) |
|
Registering ActiveX Controls |
|
|
869 | (1) |
|
Using the Registry Editor to Discover Class Ids |
|
|
870 | (1) |
|
Using the WebBrowser Control within an HTML File |
|
|
871 | (1) |
|
|
872 | (1) |
|
Responses and Request in ASP |
|
|
873 | (1) |
|
Making Use of Querystring Parameters |
|
|
874 | (1) |
|
|
875 | (1) |
|
|
876 | (1) |
|
|
877 | (1) |
|
Using the WritePrivateProfileString API With Files |
|
|
878 | (1) |
|
Using the GetPrivateProfileString API with .ini Files |
|
|
879 | (1) |
|
Using the GetPrivateProfileInt API with .ini files |
|
|
880 | (1) |
|
Using .ini Files with Distributed Programs |
|
|
881 | (1) |
|
Understanding the Limitations of .ini Files |
|
|
882 | (1) |
|
Understanding the System Registry |
|
|
883 | (1) |
|
Understanding the SaveSetting Function |
|
|
884 | (1) |
|
Understanding the GetSetting Member Function |
|
|
885 | (1) |
|
Using the SaveSetting and GetSetting Statements |
|
|
886 | (1) |
|
Saving Form Sizes and Positions in the Registry |
|
|
887 | (1) |
|
Passing Variables Between Programs within the Registry |
|
|
888 | (1) |
|
Using the DeleteSetting Function |
|
|
889 | (1) |
|
Using the GetAllSettings Function |
|
|
890 | (1) |
|
Using API Functions with the Registry |
|
|
891 | (1) |
|
Understanding the RegOpenKeyEx API Function |
|
|
892 | (1) |
|
Understanding the RegQueryValueEx Function |
|
|
893 | (1) |
|
Understanding the RegCloseKey Function |
|
|
894 | (1) |
|
Using the API Functions When Opening Forms |
|
|
895 | (1) |
|
Understanding the RegCreateKeyEx Function |
|
|
896 | (1) |
|
Understanding the RegSetValueEx Function |
|
|
897 | (1) |
|
Using RegSetValueEx and RegCreateValueEx |
|
|
898 | (1) |
|
Capturing Registry Errors |
|
|
899 | (1) |
|
Deleting Keys and Values Using API Functions |
|
|
900 | (1) |
|
Considering Registry Access |
|
|
901 | (1) |
|
Understanding Conditional Compilation |
|
|
902 | (1) |
|
Understanding the #Const Statement |
|
|
903 | (1) |
|
Understanding #If-Then-#Else |
|
|
904 | (1) |
|
Using Conditional Compilation |
|
|
905 | (1) |
|
Understanding the GetWindowsDirectory API Function |
|
|
906 | (1) |
|
Understanding the GetSystemDirectory API Function |
|
|
907 | (1) |
|
Using the GetWindow Function |
|
|
908 | (1) |
|
|
909 | (1) |
|
Exporting Your Application |
|
|
910 | (1) |
|
Understanding the Visual Basic Setup Wizard |
|
|
911 | (1) |
|
Selecting a Project File to Distribute |
|
|
912 | (1) |
|
Selecting the Distribution Media |
|
|
913 | (1) |
|
Ensuring that all Files are in the Distribution List |
|
|
914 | (1) |
|
Saving Installation Templates |
|
|
915 | (1) |
|
Generating Your Distribution Media |
|
|
916 | (1) |
|
Installing the Program at the User's Computer |
|
|
917 | (1) |
|
Creating an Internet Distribution |
|
|
918 | (1) |
|
Reconsidering the Application Wizard |
|
|
919 | (1) |
|
Using Application Wizard to Generate Standard Forms |
|
|
920 | (1) |
|
Understanding the Splash Screen |
|
|
921 | (1) |
|
Understanding the About Box |
|
|
922 | (1) |
|
Adding Database Forms Using the Wizard |
|
|
923 | (1) |
|
Understanding Crystal Reports |
|
|
924 | (1) |
|
|
925 | (1) |
|
Selecting a Data Source for Your Report |
|
|
926 | (1) |
|
Adding Fields to Your Report |
|
|
927 | (1) |
|
Grouping Records within Your Report |
|
|
928 | (1) |
|
Totaling and Counting Grouped Fields |
|
|
929 | (1) |
|
Selecting Records and Styling the Report |
|
|
930 | (1) |
|
|
931 | (1) |
|
Moving, Resizing, Formatting and Deleting Fields |
|
|
932 | (1) |
|
Changing the Sort Sequence of Report Data |
|
|
933 | (1) |
|
Correcting the Sort and Group Order |
|
|
934 | (1) |
|
|
935 | (1) |
|
Working with Summarized and Totaled Fields |
|
|
936 | (1) |
|
|
937 | (1) |
|
|
938 | (1) |
|
|
939 | (1) |
|
|
940 | (1) |
|
Returning the Top N Records in a Group |
|
|
941 | (1) |
|
|
942 | (1) |
|
Adding a Graph/Chart to Your Report |
|
|
943 | (1) |
|
Inserting OLE or ActiveX Objects into Your Report |
|
|
944 | (1) |
|
Adding or Changing a Report Title |
|
|
945 | (1) |
|
Understanding the Crystal Report Engine |
|
|
946 | (1) |
|
Understanding the Crystal ActiveX Control |
|
|
947 | (1) |
|
Using the Crystal ActiveX Control |
|
|
948 | (1) |
|
Understanding the Icons on the Crystal Window |
|
|
949 | (1) |
|
Limitations of the Crystal Reports Control |
|
|
950 | (1) |
|
|
951 | (1) |
|
Revisiting the Object Model |
|
|
952 | (1) |
|
|
953 | (1) |
|
|
954 | (1) |
|
Accessing the Extensibility Model |
|
|
955 | (1) |
|
Creating the Project Components |
|
|
956 | (1) |
|
Understanding the IDTExtensibility Interface |
|
|
957 | (1) |
|
Understanding the OnConnection Function |
|
|
958 | (1) |
|
Dissecting the OnConnection Code |
|
|
959 | (1) |
|
Understanding the AddToAddInCommandBar Function |
|
|
960 | (1) |
|
Customizing the Connect Module |
|
|
961 | (1) |
|
Adding the Final Component |
|
|
962 | (1) |
|
Completing the Add-In's Design |
|
|
963 | (1) |
|
Adding the Add-In to the .ini File |
|
|
964 | (1) |
|
|
965 | (1) |
|
Troubleshooting the Add-In |
|
|
966 | (1) |
|
Understanding ActiveX Exe |
|
|
967 | (1) |
|
Differentiating Between In-Process and Out-Of-Process Components |
|
|
968 | (1) |
|
|
969 | (1) |
|
Understanding Asynchronous Processing |
|
|
970 | (1) |
|
Understanding Asynchronous Notification Using Events |
|
|
971 | (1) |
|
Understanding Asynchronous Notification Using Call-Back Methods |
|
|
972 | (1) |
|
Using Call-Backs With Multiple Clients |
|
|
973 | (1) |
|
Deciding Between Events or Call-Backs for Notifications |
|
|
974 | (1) |
|
Understanding Type Libraries |
|
|
975 | (1) |
|
Understanding Default Interfaces |
|
|
976 | (1) |
|
|
977 | (1) |
|
Understanding Version Compatibility |
|
|
978 | (1) |
|
|
979 | (1) |
|
Understanding Modality with Out-Of-Process Components |
|
|
980 | (1) |
|
Beginning the Creation of the Test Project |
|
|
981 | (1) |
|
Adding Code to the Test Project |
|
|
982 | (1) |
|
|
983 | (1) |
|
Viewing TestForm Modelessly |
|
|
984 | (1) |
|
Using Asynchronous Notifications |
|
|
985 | (1) |
|
Completing the Code For the Event Notification |
|
|
986 | (1) |
|
Writing the Client Program |
|
|
987 | (1) |
|
Considering How to Handle Multiple Clients |
|
|
988 | (1) |
|
Using the Connector Object |
|
|
989 | (1) |
|
Recognizing the Bug in Connector |
|
|
990 | (1) |
|
Using Asynchronous Call-Back Methods |
|
|
991 | (1) |
|
Creating the Lunch TimeMonitor Executable |
|
|
992 | (1) |
|
Distributing the ActiveX EXE |
|
|
993 | (1) |
|
Understanding Single Threads |
|
|
994 | (1) |
|
Ordering Your Development of ActiveX Components |
|
|
995 | (1) |
|
Revisiting Multithreading |
|
|
996 | (1) |
|
Understanding Apartment-Model Threading |
|
|
997 | (1) |
|
|
998 | (1) |
|
Understanding Binary Compatibility |
|
|
999 | (1) |
|
|
1000 | (1) |
|
Avoiding Version Compatibility Messages |
|
|
1001 | |