Mike Prestwood Mike Prestwood's Articles Page
434 Articles (full articles, general posts, and/or blog topics).
These Articles are organized by our community groups then by our knowledge base sub-topics.
|
Group: Linux Users
Topic: Linux Applications
Group: C++
Topic: C++ Language Basics
C++ is a hybrid language and as such offers global functions and class methods. A function must come before it's usage or you can prototype the function.
+Add Comment
( 2 Comments)
Topic: Standard C++
Group: Pascal and Delphi Coding
Topic: BDE
This KB Post addresses accessing Paradox tables through the BDE using TDatasource, TTable, and TDBGrid. This tutorial was updated for Delphi 2009 but applies to all versions of Delphi.
+Add Comment
( 2 Comments)
Topic: Coding Tasks
Topic: Delphi for Win32
Topic: Tool Basics
Topic: Language Basics
This primer is intended for those just getting started in Delphi and focuses on displaying things.
+Add Comment
( 24 Comments)
Create a classic "Hello, World" Windows native code Console App using Delphi. This tutorial is based on Borland Developer Suite 2006 but you can use any version of Delphi you wish. In this tutorial, you will create a classic "Hello, World!" windows console application. A console application is a type of Windows application that has FULL access to the Win32 API, but it's GUI is limited to a DOS-like text window. When Windows starts a console application, it creates a text-mode console window where the program can display text and the user can interact with the program via the keyboard.
+Add Comment
( 6 Comments)
Create a classic "Hello, World" Windows native code application using Delphi. This tutorial is based on Borland Developer Suite 2006 but you can use any version of Delphi you wish.
+Add Comment
( 4 Comments)
Delphi uses // for a single line comment and both {} and (**) for multiple line comments. Although you can nest different types of multiple line comments, it is recommended that you don't. A special comment. Delphi compiler directives are in the form of {$DIRECTIVE}. Of interest for comments is using the $IFDEF compiler directive to remark out code.
+Add Comment
( 20 Comments)
In Delphi, you define constants similar to how you define variables but use the Const keyword instead of the Var keyword. Declare global constants in a unit's interface section and unit constants (scope limited to unit) in the implementation section. Declare local constants above the begin..end block.
+Add Comment
Common source code file extensions include:
- .BDSPROJ - Project, Borland Developer Studio project file holds compiler options, etc. This is the file you open.
- .DCU - Delphi Compiled Unit file.
- .DFM - Delphi Win32 form file (a text resource file).
- .DPR - Delphi project file. Primary project "source" file.
- .PAS - Delphi unit source file.
+Add Comment
Object Pascal allows parameters of the same type to be listed together, separated by commas, and followed with a single data type (more params of different data types can follow, after a semi-colon). The default for parameters is by value. For by reference, add var in front of the parameter. Object Pascal also offers constant parameters where you add const in front of the parameter. A constant parameter is like a local constant or read-only parameter the compiler can optimize. You cannot assign a value to a constant parameter, nor can you pass one as a var parameter to another routine.
+Add Comment
Rave Reports comes closest to a Delphi standard now but historically there has been no real standard in Delphi development. Do-it-yourself developers sometimes like to use TPrinter for very simple reports. ReportSmith was bundled with the first few versions of Delphi.
Delphi has offered many embedded VCL component report options. Quick Reports has been a part of Delphi since Delphi 2.0 and has been the default report writer for many Delphi developers. Ace Reporter, ReportBuilder and Rave Reports are also very popular. During the time of Kylix, FastReports was popular because of it's cross-platform nature.
+Add Comment
( 4 Comments)
Declare global variables in the interface section of a unit, variables declared within the implementation section (but not within a method) have a scope limited to the unit. You declare local variables in a var block outside (above) your begin..end code block. You cannot declare variables in-line (inside begin..end). You can initialize global and unit variables but you cannot initialize local variables. Delphi offers many variable types. Some common variable types include String, WideString, PChar, Integer, Boolean, Single, Double, Pointer, and Variant.
+Add Comment
( 2 Comments)
Topic: Language Details
When you want the exception to be the rule. A technique for handling exceptions in Borland Delphi's Object Pascal.
+Add Comment
( 11 Comments)
This lesson shows you how to create and use several different types of arrays in Object Pascal.
+Add Comment
Common comparison operators:
= |
equal |
<> |
not equal |
< |
less than |
> |
greater than |
<= |
less than or equal |
>= |
greater than or equal |
+Add Comment
InputBox allows you to set a value, display it to the user, and have the user change it. Although InputBox generally isn’t flashy enough for finished applications, it is great for debugging and smaller “in-house” applications.
+Add Comment
MessageBox is similar to ShowMessage but gives you more control over how it displays. This one is a favorite of developers because it is a Windows API function wrapped in a Delphi method. This is important because many Windows development languages support the MessageBox function.
+Add Comment
( 7 Comments)
How to use Delphi's two varieties of string variables: Pascal strings and PChar strings.
+Add Comment
( 4 Comments)
ShowMessage displays a simple dialog box with the text you provide it. It is one of the most used ways of displaying information.
+Add Comment
( 3 Comments)
The StatusBar component allows you to write text to the status bar. This is one of the most common ways to display information to a user without stopping their work.
+Add Comment
( 1 Comments)
Topic: OOP
Beginners example of creating and using a class. Early versions of Delphi use the standard OO private, protected, and public visibility specifiers plus add published for RTTI info. Later versions of Delphi add strict private and strict protected for a true OO implementation.
+Add Comment
( 3 Comments)
Delphi for Win32 supports abstract class members using the abstract keyword. You can even instantiate instances of a class that contains abstract members. Then you override each abstract member in a descendant class with Override. Delphi does not support setting an entire class as abstract. You can create an abstract class (a class with one or more abstract methods), but there is no way to tell the compiler to not allow the instantiation of the abstract class. Delphi does not support abstract member properties directly. To implement an abstract properity, make use of abstract methods. That is, you can read a GetPropertyX abstract function and write to a SetPropertyX abstract procedure. In effect, creating an abstract property.
+Add Comment
( 5 Comments)
In Delphi programming language (Object Pascal), all classes ultimately inherit from the base class TObject.
+Add Comment
( 1 Comments)
Delphi allows you to extend an existing class without using inheritance. Buggy in 2005 and not officially supported but stable and usable in 2006 and above. You declare a class helper similiar to how you declare a class but use the keywords class helper for.
- You can name a helper anything.
- Helpers have access only to public members of the class.
- You cannot create an object instance directly from a class helper.
- self refers to the class being helped.
+Add Comment
( 1 Comments)
Declare your class in the Interface section. Then implement the class in the Implementation section.
+Add Comment
( 4 Comments)
In Delphi, use the constructor keyword to signify which method or methods are constructors for a class. It is traditional but not required to use a procedure called Create.
In addition to having multiple named constructors, you can overload constructors.
+Add Comment
( 3 Comments)
In Delphi, you use the class keyword followed by the parent class in parens. If you leave out the parent class, your class inherits from TObject.
+Add Comment
You specify an interface in the type block just like you do for a class but you use the interface keywoard instead of the class keyword and in the interfaces section only. Since interfaces, by definition, do not have any implementation details, all you do is specifiy it in the type block.
+Add Comment
( 24 Comments)
Specify Delphi member modifiers as follows:
reintroduce; overload; [binding modifier]; [calling convention]; abstract; [warning]
The binding modifiers are virtual, dynamic, or override. The calling conventions are register, pascal, cdecl, stdcall, or safecall. The warnings are platform, deprecated, or library. Additional directives include reintroduce, abstract, class, static, overload, and message.
+Add Comment
Up until D2005, private and protected were not implemented strictly. Starting with D2005, a traditional strict versions of OOP are supported using the strict keyword. OO purist will want you to use strict private over private and strict protected over protected. I suggest you follow that advice until you both fully understand the differences and have a specific need. Delphi offers a special published specifier which is the same as public members but runtime type information (RTTI) is generated.
+Add Comment
In Delphi, you specify a virtual method with the virtual keyword in a parent class and replace it in a descendant class using the override keyword. Call Inherited in the descendant method to execute the code in the parent method.
+Add Comment
( 2 Comments)
Topic: Using Data
Implement static member data in Delphi with variables declared in the implementation section (unit scope). Increment and decrement variable in constructor and destructor. Then use a class function to surface the variable's value publicly.
+Add Comment
Heterogeneous Joins in Delphi: by Mike Benemelis.
A heterogeneous join is when you join tables from two different SQL servers (or a server and a local table) within the same query. This short article will show you how to perform such queries using Delphi.
+Add Comment
( 6 Comments)
The Database Desktop IS Paradox. It's just a stripped down version. The SQL editor in the Database Desktop (and in Paradox) allows you to execute one SQL statement at a time.
+Add Comment
With TDataSet.Filter, use square brackets for fields with odd characters like spaces and slashes.
+Add Comment
Topic: Using Controls
To determine the total number of columns in a String Grid, refer to its ColCount property and for the total number of rows, refer to RowCount. Determing the currently selected cell is a simple matter of referring to the Col and Row properties.
+Add Comment
( 2 Comments)
Topic: Prestwood Delphi Gazette Archive
Our Delphi Gazette ran for a vew years in the late 90s. This page archives 1998.
Posted By Mike Prestwood,
Post #102272, KB Topic: Prestwood Delphi Gazette Archive
+Add Comment
( 1 Comments)
Group: C# (Visual C# & VS.Net)
Topic: Tool Basics
C# is case sensitive. The following does NOT: messagebox.Show("hello"); //Does not work!
The first time you type any other case for commands or variables, VS.Net will change it to the accepted or defined case. For example, if you type messagebox.show it is converted to MessageBox.Show. Once corrected, you can break it again by editing MessageBox to messagebox and the compiler will give you an error.
+Add Comment
Topic: OOP
C# supports abstract class members and abstract classes using the abstract modifier. An abstract class is a class with one or more abstract members and you cannot instantiate an abstract class. However, you can have additional implemented methods and properties. An abstract member is either a method (implicitly virtual), property, indexer, or event in an abstract class. You can add abstract members ONLY to abstract classes using the abstract keyword.
+Add Comment
( 3 Comments)
In C#, you use the class keyword to specify a class and you signify its parent with a colon and the name of the parent class. When you instantiate an object from a class, you use the new keyword.
+Add Comment
In C#, a constructor is called whenever a class or struct is created. A constructor is a method with the same name as the class with no return value and you can overload the constructor. If you do not create a constructor, C# will create an implicit constructor that initializes all member fields to their default values.
Constructors can execute at two different times. Static constructors are executed by the CLR before any objects are instantiated. Regular constructors are executed when you create an object.
+Add Comment
Use a destructor to free unmanaged resources. A destructor is a method with the same name as the class but preceded with a tilde (as in ~ClassName). The destructor implicity creates an Object.Finalize method (you cannot directly call nor override the Object.Finalize method).
In C# you cannot explicitly destroy an object. Instead, the .Net Frameworks garbage collector (GC) takes care of destroying all objects. The GC destroys the objects only when necessary. Some situations of necessity are when memory is exhausted or you explicitly call the System.GC.Collect method. In general, you never need to call System.GC.Collect.
+Add Comment
( 3 Comments)
Classes and structs can inherit from interfaces in a manner similar to how classes can inherit a base class or struct, but a class or struct can inherit more than one interface and it inherits only the method names and signatures, because the interface itself contains no implementations.
class MyClass: IMyInterface { public object Clone() { return null; } // IMyInterface implemented here... }
+Add Comment
In C# you can set the visibility of a member field to any visibility: private, protected, public, internal or protected internal. You can intialize a member field with a default when declared. If you set the member field value in your constructor, it will override the default value. Finally, you can use the static modifier (no instance required) and readonly modifier (similar to a constant).
+Add Comment
( 2 Comments)
In C#, parens indicate a method and the lack of parens indicate a property. You use special get and set methods to both get and set the values of properties. For a read-only property, leave out the set method. The value keyword is used to refer to the member field. Properties can make use of any of the access modifiers (private, protected, etc). It is common to use a lowercase member names for member fields ("name" in our example) and uppercase properties to manage member fields ("Name" in our example).
+Add Comment
Method overriding allows you to define or implement a virtual method in a parent class and then replace it in a descendant class. In C#, you specify a virtual method with the virtual keyword in a parent class and replace it in a descendant class using the override keyword.
+Add Comment
( 6 Comments)
C# uses the keyword partial to specify a partial class. All parts must be in the same namespace.
A partial class, or partial type, is a class that can be split into two or more source code files and/or two or more locations within the same source file. Each partial class is known as a class part or just a part. Logically, partial classes do not make any difference to the compiler. The compiler puts the class together at compile time and treats the final class or type as a single entity exactly the same as if all the source code was in a single location.
You can use them for many things including to separate code generator code, organize large classes, divice a class up so you can split ownwership among multiple developers, have different versions of the same class, and to utilize multiple languages with a single class.
+Add Comment
( 1 Comments)
Topic: WinForms
The ButtonsCS project. Create a classic "Hello, World" application using Visual Studio .Net with C# syntax. Requires either the full version or Visual C# Express Edition.
+Add Comment
( 4 Comments)
Topic: WebForms Coding Tasks
Group: VB.Net Language
Topic: Tool Basics
This will show how to make a "hello world" console application in Visual Studio 2008 using VB.Net.
+Add Comment
( 6 Comments)
Topic: OOP
VB.Net supports abstract class members and abstract classes using the MustInherit and MustOverride modifiers.An abstract class is indicated with a MustInherit modifier and is a class with one or more abstract members and you cannot instantiate an abstract class. However, you can have additional implemented methods and properties. An abstract member is either a method (implicitly virtual), property, indexer, or event in an abstract class. You can add abstract members ONLY to abstract classes using the MustOverride keyword. Then you override it in a descendant class with Overrides.
+Add Comment
( 1 Comments)
Declare and implement VB.Net classes after the form class or in their own .vb files. Unlike VB Classic, you can have more than one class in a .vb class file (VB classic uses .cls files for each class).
+Add Comment
A sub named New. You can overload the constructor simply by adding two or more New subs with various parameters. Public Class Cyborg Public CyborgName As String Public Sub New(ByVal pName As String) CyborgName = pName End Sub End Class
+Add Comment
Use a destructor to free unmanaged resources. A destructor is a method with the same name as the class but preceded with a tilde (as in ~ClassName). The destructor implicity creates an Object.Finalize method (you cannot directly call nor override the Object.Finalize method).
In VB.Net you cannot explicitly destroy an object. Instead, the .Net Frameworks garbage collector (GC) takes care of destroying all objects. The GC destroys the objects only when necessary. Some situations of necessity are when memory is exhausted or you explicitly call the System.GC.Collect method. In general, you never need to call System.GC.Collect.
+Add Comment
( 3 Comments)
With VB.Net you define an interface with the Interface keyword and use it in a class with the Implements keyword. In the resulting class, you implement each property and method and add Implements Interface.Object to each as in: Sub Speak(ByVal pSentence As String) Implements IHuman.Speak MessageBox.Show(pSentence) End Sub
+Add Comment
In VB.Net you can set the visibility of a member field to any visibility: private, protected, public, friend or protected friend.
You can intialize a member field with a default when declared. If you set the member field value in your constructor, it will override the default value.
Finally, you can use the Shared modifier (no instance required) and ReadOnly modifier (similar to a constant).
+Add Comment
VB.Net uses a special property keyword along with special get and set methods to both get and set the values of properties. For a read-only property, leave out the set method. The value keyword is used to refer to the member field. Properties can make use of any of the access modifiers (private, protected, etc).
My preference for VB.Net code is to start member fields with "F" ("FName" in our example) and drop the "F" with properties that manage member fields ("Name" in our example).
+Add Comment
In VB.Net, you specify a virtual method with the Overridable keyword in a parent class and extend (or replace) it in a descendant class using the Overrides keyword.
Use the base keyword in the descendant method to execute the code in the parent method, i.e. base.SomeMethod().
+Add Comment
VB.Net supports both partial classes and partial methods.
+Add Comment
Topic: WinForms
The ButtonsVB project. Create a classic "Hello, World" application using Visual Studio .Net with VB.Net syntax. Requires either the full version or VB.Net Express Edition.
+Add Comment
( 2 Comments)
Group: Corel Paradox / ObjectPAL Coding
Topic: Paradox & ObjectPAL
A cuddly tray icon which makes all your apps work with the IntelliMouse scrolling wheel. Two modes of operation are supported. Also, FreeWheel allows you to switch between documents by holding down the control and shift keys while moving the mouse wheel. FreeWheel is free, so dont delay - try it today. You might like it! Requires Microsoft IntelliMouse or equivalent.
+Add Comment
( 5 Comments)
Arrays in ObjectPAL use a 1-based indice. Use size() to get the number of elements. size() returns 0 if the array has no elements.
+Add Comment
( 5 Comments)
Topic: Tool Basics
My thoughts on whether Paradox for Windows is a good solution for building web-based Internet solutions.
+Add Comment
( 8 Comments)
If you have an existing Paradox system you can keep using it but you'll need to skip the Vista operating system and either stick with Windows XP or move to Windows 7. Because better tools exist, you may very well want to put a plan together now for converting to another development tool or at least understand what the future is likely to hold. If you're a power-user or researcher working with data, stick with Paradox.
+Add Comment
( 44 Comments)
Topic: Installation, Setup, & BDE
Bottom line is you should skip Vista and either stick with XP or move to Win 7. If you have to use Vista, you might be better off with Paradox 9.
Posted By Mike Prestwood,
Post #101099, KB Topic: Installation, Setup, & BDE
+Add Comment
( 8 Comments)
Does Corel Paradox for Windows run on Vista? If so, are there any issues? What about Windows 7?
Posted By Mike Prestwood,
Post #100449, KB Topic: Installation, Setup, & BDE
+Add Comment
( 25 Comments)
Paradox 9, 10, 11, etc. install easily on Windows 7! You do have to download WinHelp to get the Paradox help files to work properly.
Posted By Mike Prestwood,
Post #102247, KB Topic: Installation, Setup, & BDE
+Add Comment
( 12 Comments)
Paradox for Windows has two primary file types: source files and delivered files. Source files in Paradox are binary but can can be opened in later versions of Paradox and even in earlier versions if you don't use any new features: .FSL = Form, .RSL = Report, .SSL = Script, and .LSL = Library. Since Paradox source files do not compile to an EXE, Paradox developers tend to use a startup form or script to start the application.
Posted By Mike Prestwood,
Post #101354, KB Topic: Installation, Setup, & BDE
+Add Comment
( 2 Comments)
Paradox does not remember desktop settings. I just installed Paradox 11 on a new computer and my working directory and other settings do not stick when I restart Paradox. Why?
Posted By Mike Prestwood,
Post #101574, KB Topic: Installation, Setup, & BDE
+Add Comment
( 14 Comments)
Paradox 9 versions for SP1 through SP4. Plus version info on Paradox 10 and 11.
Posted By Mike Prestwood,
Post #101977, KB Topic: Installation, Setup, & BDE
+Add Comment
( 7 Comments)
A trip down memory lane: the icons that shipped with various versions of Paradox.
Posted By Mike Prestwood,
Post #101308, KB Topic: Installation, Setup, & BDE
+Add Comment
( 1 Comments)
Topic: Paradox Tables
Use a file server (not a workstation) to store your data, disable Oplocks on the filer server, and configure the BDE (local share to true and optimize if desired). Finally, if workstations are crashing, fix em so they don't. You want clean running computers that don't crash.
+Add Comment
( 3 Comments)
Covers ALL Paradox tables from version 4 on including a description of the various Paradox table structures, limits, and specifications.
+Add Comment
( 36 Comments)
Topic: OPAL: Language Basics
If you've never programmed in ObjectPAL, spend 10 minutes and see how easy it is to program Paradox for Windows.
Posted By Mike Prestwood,
Post #101209, KB Topic: OPAL: Language Basics
+Add Comment
( 3 Comments)
This detailed ObjectPAL primer will get you up and running developing in Paradox/ObjectPAL within a few hours.
Posted By Mike Prestwood,
Post #100163, KB Topic: OPAL: Language Basics
+Add Comment
( 6 Comments)
Common comparison operators:
= |
equal |
<> |
not equal |
< |
less than |
> |
greater than |
<= |
less than or equal |
>= |
greater than or equal |
Posted By Mike Prestwood,
Post #101875, KB Topic: OPAL: Language Basics
+Add Comment
( 3 Comments)
In ObjectPAL, an empty variable can be unassigned (essentially null) or blank (equivalent to ""). You have to use both isBlank and isAssigned to check for an empty string.
Posted By Mike Prestwood,
Post #102041, KB Topic: OPAL: Language Basics
+Add Comment
( 11 Comments)
ObjectPAL logical operators:
and |
and, as in this and that |
or |
or, as in this or that |
Not |
Not, as in Not This |
Posted By Mike Prestwood,
Post #101898, KB Topic: OPAL: Language Basics
+Add Comment
( 2 Comments)
Techniques for thinking about where to put code in Paradox's object-based event model.
Posted By Mike Prestwood,
Post #100769, KB Topic: OPAL: Language Basics
+Add Comment
Topic: Interactive Paradox: Getting Going
Step by step instructions for setting some of Paradox's more useful preferences.
Posted By Mike Prestwood,
Post #101172, KB Topic: Interactive Paradox: Getting Going
+Add Comment
( 2 Comments)
Topic: OPAL: Language Details
The following code demonstrates one technique for adding and subtracting months from a date in Paradox's ObjectPAL.
Posted By Mike Prestwood,
Post #100001, KB Topic: OPAL: Language Details
+Add Comment
( 2 Comments)
Q. How can you create a table of all the ObjectPAL commands?
Posted By Mike Prestwood,
Post #100067, KB Topic: OPAL: Language Details
+Add Comment
Using loop structures in ObjectPAL (for, forEach, scan, while, and looping with timers).
Posted By Mike Prestwood,
Post #101170, KB Topic: OPAL: Language Details
+Add Comment
( 2 Comments)
DDE is one of several techniques for merging a word document with a Paradox table.
Posted By Mike Prestwood,
Post #100070, KB Topic: OPAL: Language Details
+Add Comment
( 3 Comments)
Demonstration of how to handle dates and times in ObjectPAL.
Posted By Mike Prestwood,
Post #101162, KB Topic: OPAL: Language Details
+Add Comment
Paradox character sets: ANSI, OEM, Virtual keycodes (VK Keyboard Constants), and Hex
Posted By Mike Prestwood,
Post #100312, KB Topic: OPAL: Language Details
+Add Comment
( 1 Comments)
In 32-bit Windows 95/98/ME/NT/2000, you use the PlaySound function in WINMM.DLL.
Posted By Mike Prestwood,
Post #100065, KB Topic: OPAL: Language Details
+Add Comment
ObjectPAL methods for using the Window's registry to store and retrieve configuration settings.
Posted By Mike Prestwood,
Post #100770, KB Topic: OPAL: Language Details
+Add Comment
( 2 Comments)
Topic: Interactive Paradox: Queries (QBE)
Topic: Interactive Paradox: Reports
Paradox has a built-in report writer that will suffice for nearly all reports you wish to create. You base a report on one or more tables or on a query. It uses a banded approach so you think in terms of records, pages, and report. Except for the record band, each section has a header and a footer. Paradox also offers a quick report which is useful for printing data quickly.
Posted By Mike Prestwood,
Post #101218, KB Topic: Interactive Paradox: Reports
+Add Comment
( 1 Comments)
Topic: Interactive Paradox: Using Data
You can use Format | Filter while viewing a table to apply a secondary index.
Posted By Mike Prestwood,
Post #100508, KB Topic: Interactive Paradox: Using Data
+Add Comment
( 6 Comments)
Paradox versus dBASE tables. Which to use in Paradox for Windows.
Posted By Mike Prestwood,
Post #101185, KB Topic: Interactive Paradox: Using Data
+Add Comment
Topic: OPAL: Commands
Tracinging built-in events, setting breakpoints, compiler options, debugging without the debugger, types of errors, the error event, errorShow, and the try structure.
+Add Comment
( 2 Comments)
ObjectPAL example that demonstrates listing a set of files and allowing the user to launch any one of them by double clicking.
+Add Comment
( 1 Comments)
Using Paradox internet features. Content from chapter 25 of my "Paradox Power Programming: The Official Guide" book.
+Add Comment
( 4 Comments)
Use setWorkingDir then trap for MenuChangingWork in menuAction.
+Add Comment
Picture strings from the book Paradox 9 Power Programming.
+Add Comment
To test the speed of your code, capture the time before and after your code executes and view the milliseconds between the two dates.
+Add Comment
Topic: OPAL: Libraries
Topic: OPAL: OOP
Topic: OPAL: Reports
How to use enumUIObjectNames and attach to manipulate a group of objects on a report.
+Add Comment
( 4 Comments)
Topic: OPAL: Wicked Coding Tasks
Getting started with moving objects with the mouse.
Posted By Mike Prestwood,
Post #101136, KB Topic: OPAL: Wicked Coding Tasks
+Add Comment
How to use the limited ObjectPAL support in reports.
Posted By Mike Prestwood,
Post #100175, KB Topic: OPAL: Wicked Coding Tasks
+Add Comment
Topic: OPAL: Win32 Calls
Topic: Professional Paradox/ObjectPAL Help
Is Paradox the right tool for your new application?
Posted By Mike Prestwood,
Post #100642, KB Topic: Professional Paradox/ObjectPAL Help
+Add Comment
Should you continue supporting your Paradox legacy applications?
Posted By Mike Prestwood,
Post #100643, KB Topic: Professional Paradox/ObjectPAL Help
+Add Comment
If you've lost your master password for your Paradox tables, we can help you recover your data.
Posted By Mike Prestwood,
Post #101194, KB Topic: Professional Paradox/ObjectPAL Help
+Add Comment
Topic: Runtime, PDE, Package-It!
Paradox for Windows Command-Line Options, runtime registry settings, adding menu items to Paradox, and manually setup a Vista shortcut.
Posted By Mike Prestwood,
Post #100307, KB Topic: Runtime, PDE, Package-It!
+Add Comment
( 2 Comments)
Topic: P5 Book: What Every Prgrmr Should Know
Chapter 1 of What Every Paradox for Windows Programmer Should Know by Mike Prestwood.
Posted By Mike Prestwood,
Post #100171, KB Topic: P5 Book: What Every Prgrmr Should Know
+Add Comment
Chapter 2 of What Every Paradox for Windows Programmer Should Know by Mike Prestwood.
Posted By Mike Prestwood,
Post #100177, KB Topic: P5 Book: What Every Prgrmr Should Know
+Add Comment
Topic: P7 Book: Programming Unleashed
Chapter 27, "Using DDE, OLE, and OLEAuto" from Paradox 7 Programming Unleashed by Mike Prestwood.
Posted By Mike Prestwood,
Post #100145, KB Topic: P7 Book: Programming Unleashed
+Add Comment
( 2 Comments)
The four appendices for Paradox 7 Programming Unleashed included on the CD-ROM.
Posted By Mike Prestwood,
Post #100881, KB Topic: P7 Book: Programming Unleashed
+Add Comment
Topic: P9 Book: Power Programming
Forward to my book Paradox 9 Power Programming: The Official Guide. The forward is by Michael Cowpland (Chairman, President and CEO, Corel Corporation).
Posted By Mike Prestwood,
Post #101188, KB Topic: P9 Book: Power Programming
+Add Comment
( 1 Comments)
We still have a high demand for my book titled, "Paradox 9 Power Programming" by Mike Prestwood. So we're still doing our book buy back. If you've got one sitting on your shelf, please consider selling it to us.
Posted By Mike Prestwood,
Post #100402, KB Topic: P9 Book: Power Programming
+Add Comment
Chapter 1 titled, "The Paradox Development Environment" from Paradox 9 Power Programming by Mike Prestwood.
Posted By Mike Prestwood,
Post #100194, KB Topic: P9 Book: Power Programming
+Add Comment
( 23 Comments)
Chapter 2 "Tables and Developing" from Paradox 9 Power Programming: The Official Guide by Mike Prestwood.
Posted By Mike Prestwood,
Post #100219, KB Topic: P9 Book: Power Programming
+Add Comment
( 2 Comments)
Chapter 3, "How to Develop Forms" from Paradox 9 Power Programming by Mike Prestwood.
Posted By Mike Prestwood,
Post #100197, KB Topic: P9 Book: Power Programming
+Add Comment
Chapter 4, "An Introduction to ObjectPAL" from Paradox 9 Power Programming by Mike Prestwood.
Posted By Mike Prestwood,
Post #100198, KB Topic: P9 Book: Power Programming
+Add Comment
( 2 Comments)
Chapter 7, "More About Syntax - Part 1" from Paradox 9 Power Programming by Mike Prestwood.
Posted By Mike Prestwood,
Post #100201, KB Topic: P9 Book: Power Programming
+Add Comment
Chapter 10, "Using Table Windows" from Paradox 9 Power Programming by Mike Prestwood.
Posted By Mike Prestwood,
Post #100196, KB Topic: P9 Book: Power Programming
+Add Comment
Chapter 11, "Programming with Queries" from Paradox 9 Power Programming by Mike Prestwood.
Posted By Mike Prestwood,
Post #100202, KB Topic: P9 Book: Power Programming
+Add Comment
( 5 Comments)
Chapter 12, "Handling Reports" from Paradox 9 Power Programming by Mike Prestwood.
Posted By Mike Prestwood,
Post #100205, KB Topic: P9 Book: Power Programming
+Add Comment
Chapter 13, "Crosstabs and Charts" from Paradox 9 Power Programming by Mike Prestwood.
Posted By Mike Prestwood,
Post #100206, KB Topic: P9 Book: Power Programming
+Add Comment
( 2 Comments)
Chapter 14, "Using Table and TCursor Variables" from Paradox 9 Power Programming by Mike Prestwood.
Posted By Mike Prestwood,
Post #100207, KB Topic: P9 Book: Power Programming
+Add Comment
Chapter 15, "Fields, Table Frames, and MROs" from Paradox 9 Power Programming by Mike Prestwood.
Posted By Mike Prestwood,
Post #100208, KB Topic: P9 Book: Power Programming
+Add Comment
( 4 Comments)
Chapter 16, "Handling the Keyboard" from Paradox 9 Power Programming by Mike Prestwood.
Posted By Mike Prestwood,
Post #100211, KB Topic: P9 Book: Power Programming
+Add Comment
( 5 Comments)
Chapter 17, "Manipulating Objects At Run Time" from Paradox 9 Power Programming by Mike Prestwood.
Posted By Mike Prestwood,
Post #100212, KB Topic: P9 Book: Power Programming
+Add Comment
Chapter 18, "Reusing Code" from Paradox 9 Power Programming by Mike Prestwood. Includes coding custom methods, custom procedures, and using ObjectPAL libraries.
Posted By Mike Prestwood,
Post #100213, KB Topic: P9 Book: Power Programming
+Add Comment
( 2 Comments)
Chapter 19, "Imitate Users with Action, PostAction, and MenuAction" from Paradox 9 Power Programming by Mike Prestwood.
Posted By Mike Prestwood,
Post #100214, KB Topic: P9 Book: Power Programming
+Add Comment
( 2 Comments)
Chapter 24 "SQL and Client/Server Applications" of Paradox 9 Power Programming by Mike Prestwood.
Posted By Mike Prestwood,
Post #100204, KB Topic: P9 Book: Power Programming
+Add Comment
( 3 Comments)
This chapter will introduce you to creating both menus and pop-up menus. If you are going to create an application-wide menu, then I strongly recommend you use Paradox’s Application Framework. This chapter will instruct you how to create menus for non-Application Framework applications and pop-up menus you can use with both.
Posted By Mike Prestwood,
Post #100403, KB Topic: P9 Book: Power Programming
+Add Comment
Topic: Paradox for Win16 (versions 1-7)
Converting Your 16-bit Paradox for Windows applications to 32-bit Paradox for Windows
Posted By Mike Prestwood,
Post #100309, KB Topic: Paradox for Win16 (versions 1-7)
+Add Comment
Topic: Paradox for DOS
Discussion of aggregators in Paradox for Windows reports as they relate to Paradox for DOS.
+Add Comment
( 3 Comments)
For maximum compatibility, use compatibility mode and adjust settings (640x480, and run in a Window, etc.).
+Add Comment
( 1 Comments)
Topic: Paradox for Linux
Chapter 26 by Mike Prestwood from the book WordPerfect Office 2000 for Linux: The Official Guide. First published June 2000 by Osborne-McGraw/Hill. ISBN 0-07-212238-2.
+Add Comment
( 6 Comments)
Chapter 27 by Mike Prestwood from the book WordPerfect Office 2000 for Linux: The Official Guide. First published June 2000 by Osborne-McGraw/Hill. ISBN 0-07-212238-2.
+Add Comment
( 13 Comments)
Chapter 28 by Mike Prestwood from the book WordPerfect Office 2000 for Linux: The Official Guide. First published June 2000 by Osborne-McGraw/Hill. ISBN 0-07-212238-2.
+Add Comment
( 2 Comments)
Chapter 29 by Mike Prestwood from the book WordPerfect Office 2000 for Linux: The Official Guide. First published June 2000 by Osborne-McGraw/Hill. ISBN 0-07-212238-2.
+Add Comment
There is no "good" path for converting a Paradox for DOS application to either Paradox for Windows or Paradox for Linux.
+Add Comment
Group: Visual Basic Classic
Topic: Tool Basics
Commenting Code VB Classic, like all the VB-based languages, uses a single quote (') or the original class-style basic "REM" (most developers just use a quote). VB Classic does NOT have a multiple line comment.
Directives - #
Directives are sometimes called compiler or preprocessor directives. A # is used for directives within VB Classic code. VB Classic offers only an #If..then/#ElseIf/#Else directive.
+Add Comment
( 9 Comments)
VB Classic is a loosely typed language. Declaring variables is optional unless you use the Option Explicit statement to force explicit declaration of all variables with Dim, Private, Public, or ReDim. Using Option Explicit is strongly recommended to avoid incorrectly typing an existing variable and to avoid any confusion about variable scope.
Undeclared variables are variants. To specifically declare a variant, use: Dim x As Variant Dim x
Common data types include Byte (0..255), Boolean, Integer (2-byte integers), Long (4-byte integers), Currency, Single (32-bit number), Double (64-bit number), Date, String, and variant.
Variables declared with Dim at the module level are available to all procedures within the module. At the procedure level, variables are available only within the procedure.
+Add Comment
Topic: Language Basics
VB Classic logical operators:
and |
and, as in this and that |
or |
or, as in this or that |
Not |
Not, as in Not This |
+Add Comment
( 7 Comments)
Topic: Language Details
VB Classic is a non-OOP language with some OOP features. It offers both Subs and Functions. A Sub does not return a value while a Function does. When Subs and Functions are used in a class module, they become the methods of the class.
+Add Comment
Group: ASP Classic Coding
Topic: ASP Classic
Arrays in ASP Classic use a 0-based indice.
Use UBound to get the number of elements. UBound returns -1 if the array has no elements, 0 if it has 1, 1 if it has 2, etc.
+Add Comment
( 2 Comments)
In ASP Classic, you have to add an empty string to the value being compared in order to get consistent results. For example, add &"" to your string varilable or it's code equivalent &vbNullString. Then compare to an empty string or verify it's length to 0 with Len.
+Add Comment
( 4 Comments)
Developer blog journal for our ASPSuite product. This blog is intended for the Prestwood ASP Classic developers.
+Add Comment
( 16 Comments)
Topic: Tool Basics
Topic: Language Basics
Same as VB. ASP Classic logical operators:
and |
and, as in this and that |
or |
or, as in this or that |
Not |
Not, as in Not This |
+Add Comment
( 4 Comments)
In ASP, you can buffer a RecordSet in either a session or application variable. This code snippet shows you how to create a reusable method for buffering RecordSets in an application variable.
+Add Comment
Many users these days have very wide screens. This article shows you how to determine the browser width using ASP classic.
+Add Comment
Code sample to get a count of the number of fields in a table of a particular field type (a particular DataTypeEnum).
+Add Comment
( 1 Comments)
You can use JavaScript to set an IIS App var to the GMT server difference. Then use that number in your code.
+Add Comment
( 4 Comments)
You can use "On Error Resume Next" to suppress errors and "On Error Goto 0" to stop suppressing errors.
+Add Comment
( 4 Comments)
Topic: Language Details
Use the scriptiing dictionary object which is available on later versions of ASP Classic (all still commonly in use). Both Access VBA and VB Classic use a collection for this but collections are not supported in ASP Classic. Dim StateList Set StateList = Server.CreateObject("Scripting.Dictionary") StateList.Add "CA", "California" StateList.Add "NV", "Nevada" Response.Write "I live in " & StateList.Item("CA")
+Add Comment
( 2 Comments)
Using a RecordSet's properties, methods and events.
+Add Comment
Response.Flush sends the contents of the buffer to the browser. This command is useful for showing a visitor something while slow loading pages load.
+Add Comment
( 14 Comments)
Topic: OOP
Ultra-primitive (no inheritance) but useful and encourages you to think and design using objects.
+Add Comment
( 2 Comments)
When an object instance is created from a class, ASP calls a special parameter-less sub named Class_Initialize. Since you cannot specify parameters for this sub, you also cannot overload it.
When a class is destroyed, ASP calls a special sub called Class_Terminate.
+Add Comment
( 7 Comments)
When an object instance is destroyed, ASP calls a special parameter-less sub named Class_Terminate. For example, when the variable falls out of scope. Since you cannot specify parameters for this sub, you also cannot overload it.
When an object instance is created from a class, ASP calls a special sub called Class_Initialize.
+Add Comment
( 1 Comments)
ASP classic uses the property keyword and special Get and Let methods to both get and set the values of properties.
+Add Comment
( 58 Comments)
The member visibility modifiers are Private and Public. If not specified, the default is Public. Private and Public have the usual meaning. Private members are visible only within the class block. Public members are visible within the class and outside of the class.
+Add Comment
Group: Website Design & Hosting
Topic: Beginners Corner
Topic: DNS Settings
Topic: Free Website Scripts
Topic: HTML Language Reference
Topic: MS Frontpage
Browser safe colors consist of 216 colors that have been agreed upon and should look good on any type of monitor capable of displaying 256 colors or higher.
+Add Comment
( 5 Comments)
Browser safe colors consist of 216 colors that have been agreed upon and should look good on any type of monitor capable of displaying 256 colors or higher.
+Add Comment
( 4 Comments)
These browser safe fonts will render well on various operating systems and browsers.
+Add Comment
( 6 Comments)
We just received FrontPage 2003 beta 2 and Microsoft has continued to add features for serious developers.
+Add Comment
( 7 Comments)
Topic: Server Farm: RS
This article shows you how to access your web hosting control panel.
+Add Comment
Summary of the Prestwood hosting plans Java capabilities.
+Add Comment
Topic: Unix Hosting
Now you can add LIVE CHAT to your web site easier than you ever imagined. The VolanoChat system is a combination of server and client side Java programs. The client side Java applet (46 KB to 57 KB depending on browser) is downloaded by the browser and then executed on the user's local machine. The client applet then communicates with the software located on the server to create a live real-time chat environment.
+Add Comment
You can assign unique userids and passwords to control access to various web pages.
+Add Comment
Topic: Website Design
How to create image maps. Imagemaps allow the user to click on predefined sections of a graphic picture on your page and have the server respond as if they clicked on a text hyperlink.
+Add Comment
Topic: Website Hosting
How to allow anonymous FTP on your Prestwood hosting account.
+Add Comment
Answers to questions you may have about using Microsoft's FrontPage on Prestwood Servers.
+Add Comment
How to get your forgotten or lost Prestwoood hosting account password.
+Add Comment
Frequently Asked Questions about email on our hosted websites.
+Add Comment
Topic: Website Scripting
13 things you can do to make your code more secure, general advice about the rest of it, PLUS YOUR COMMENTS and experiences.
+Add Comment
( 6 Comments)
Topic: Windows Hosting
ASP.NET web hosting frequently asked questions.
+Add Comment
Summary of the "special" directories used with our Windows hosting plans.
+Add Comment
Limitations of using Microsoft Access as a database in a hosting environment.
+Add Comment
How to use a DSN to connect to a database (specific to our Windows web hosting clients).
+Add Comment
We recently upgraded the way in which our statistics packages for Windows 2000 hosting plans store and log their web site data.
+Add Comment
Group: Java
Topic: Language Details
The concept of a class makes it possible to define subclasses that share some or all of the main class characteristics. This is called inheritance. Inheritance also allows you to reuse code more efficiently. In a class tree, inheritance is used to design classes vertically. (You can use Interfaces to design classes horizontally within a class tree.) With inheritance, you are defining an "is-a" relationship (i.e. a chow is-a dog). Analysts using UML call this generalization where you generalize specific classes into general parent classes. Java InheritanceSimple syntax example of class inheritance.
+Add Comment
( 6 Comments)
Group: JavaScript and AJAX
Topic: Beginners Corner
Short 10 minute getting started JavaScript primer.
+Add Comment
Adding JavaScript to your HTML forms to validate form fields.
+Add Comment
Topic: Coding Tasks
For IE 4+, this script will give visitors to your site the option to add your page to their favorites. For Netscape users it will remind them to press Control + D, for all others, it simply reminds them to bookmark your page.
+Add Comment
How to validate form field is blank or not using JavaScript.
+Add Comment
A Javascript "You are here:" location script that uses your folder path to indicate location.
+Add Comment
( 3 Comments)
Topic: JavaScript and AJAX
JScript is Microsoft's implementation of JavaScript.
+Add Comment
Topic: Language Reference
JavaScript uses functions and loosely typed parameters. Function definitions must come before their usage so the usual preference when adding JavaScript to HTML pages is to include them between the head tags.
+Add Comment
Javascript operators: assignment, comparison, computational, and logical.
+Add Comment
Group: Perl
Topic: Beginners Corner
Literals are quoted as in "Prestwood". If you need to embed a quote use a slash in front of the quote as in \".
+Add Comment
Perl is a loosely typed language with only three types of variables: scalars, arrays, and hashes. Use $ for a scalar variable, @ for an array, or % for a hash (an associative array). The scalar variable type is used for anytype of simple data such as strings, integers, and numbers. In Perl, you identify and use a variable with a $ even within strings
+Add Comment
Topic: Language Reference
Topic: Perl
Perl uses subs and parameters are referenced in a special array. All arguments passed to a subroutine are stored in a special @_ array. To retrieve the arguments, you have to look inside the array and extract them.
+Add Comment
Group: PHP & Delphi for PHP
Topic: Beginners Corner
Declare associative array with initial known values. You can also add to associative array. (You can just assign values without ever declaring it too!)
+Add Comment
In PHP you can use quotes, or apostraphies as in "Prestwood", and 'Prestwood'. Use a slash in front of a quote or apostrophe to embed same type as in \' and \".
+Add Comment
( 1 Comments)
PHP uses a period (.) known as a dot to concatenate strings.
+Add Comment
PHP is a loosely typed language. No variable types in PHP. Declaring and using variables are a bit different than in other languages. In PHP, you identify and use a variable with a $ even within strings!
You assign by reference with & as in &$MyVar.
+Add Comment
( 2 Comments)
Topic: Language Reference
PHP uses functions and loosely typed parameters. Function definitions can come before or after their usage so my preference when mixing PHP in with a mostly HTML page is to put the functions after the </html> tag.
+Add Comment
Topic: PHP
PHP has become more conformed to CGI specifications and as such, you will need to make changes to your code in order for global variables to be filled in.
+Add Comment
( 2 Comments)
Group: Coding & OO
Topic: Borland Database Engine
Download BDE 5.202 (includes a small BDE Information utility for testing the installation).
Posted By Mike Prestwood,
Post #100537, KB Topic: Borland Database Engine
+Add Comment
( 29 Comments)
Q. I've updated my BDE from version 5.01 to version 5.2.0.2 but the About BDE Administrator dialog still shows version 5.01?
A. Your update may have taken. Updates typically just replace the DLLs the BDE uses so you may have the latest installed. Version Information To see what version of the BDE engine
you "actually" have installed, you need to look at the Version
Information from within the BDE Administrator. Select Object | Version
Information... to see the DLL version numbers
Posted By Mike Prestwood,
Post #101246, KB Topic: Borland Database Engine
+Add Comment
( 7 Comments)
Topic: Object Orientation (OO)
Aggregations indicate a whole-part relationship, and are known as "has-a" or "is part of" relationships. An Aggregation relationship is indicated by a line with a hollow diamond.
Posted By Mike Prestwood,
Post #101263, KB Topic: Object Orientation (OO)
+Add Comment
( 3 Comments)
Overview and introduction to object orientation. When you analyze, design, and code in an OO way, you "think" about objects and their interaction. This type of thinking is more like real life where you naturally think about how "this object" relates to "that object". Classes represent the "design" of an existing object. The values or properties of an existing object is it's current state. When designing classes, OO supports many features like inheritance (like real-life where you inherit your parents characteristics), encapsulation (hiding data), and polymorphism (the ability of one thing to act like another or in different ways).
Posted By Mike Prestwood,
Post #100137, KB Topic: Object Orientation (OO)
+Add Comment
( 5 Comments)
The concept of a class makes it possible to define subclasses that share some or all of the main class characteristics. This is called inheritance. Inheritance also allows you to reuse code more efficiently. In a class tree, inheritance is used to design classes vertically. (You can use Interfaces to design classes horizontally within a class tree.) With inheritance, you are defining an "is-a" relationship (i.e. a chow is-a dog). Analysts using UML call this generalization where you generalize specific classes into general parent classes.
Posted By Mike Prestwood,
Post #100813, KB Topic: Object Orientation (OO)
+Add Comment
Our most popular article in the history of our online community! Explains the "is a", "has a", "uses a", and "looks like" relationships (updated May 2007). "Is a" is inheritance, "looks like" is interfaces, "has a" is aggregation, and "uses a" is composition.
Posted By Mike Prestwood,
Post #100035, KB Topic: Object Orientation (OO)
+Add Comment
( 12 Comments)
A static member is a member you can have access to without instantiating the class into an object. For example, you can read and write static properties and call static methods without ever creating the class. Static members are also called class members (class methods, class properties, etc.) since they belong to the class and not to a specific object. A static class is a class that contains only static members. In the UML, these classes are described as utility classes.
Posted By Mike Prestwood,
Post #101477, KB Topic: Object Orientation (OO)
+Add Comment
( 1 Comments)
Group: DBA, Databases, & Data
Topic: ANSI SQL Scripting
To find duplicate values in the same field, you need to use an alias with the same table twice.
+Add Comment
Topic: DBA & Data
List of common field names, along with suggested field type and length. These are only suggestions and shouldn't be taken as gospel. Use as a starting point.
+Add Comment
Topic: Desktop Databases
Topic: Interbase
Topic: MS SQL 97 / 2000
The preferred technique for transferring an MS SQL database is to do a complete backup and restore.
+Add Comment
Group: Windows Users
Topic: Features You Should Know
You should occasionally review your Windows update history and make sure all updates are succeeding.
Posted By Mike Prestwood,
Post #101224, KB Topic: Features You Should Know
+Add Comment
( 4 Comments)
Topic: Microsoft Office
How do you turn off Markup comments in Microsoft Word so the next time I open a document, I do not see the markup comments by default?
+Add Comment
Topic: Microsoft Outlook
To view the source code of an HTML email as text like you could in Outlook 2003, select Actions | Other Actions | View Source in the Move panel of the ribbon. Also available on the same menu is Message Header and View in Browser.
+Add Comment
( 6 Comments)
Topic: Online Security
Don't use it until they fix major problems with false positives and until they stop pubicly displaying your email address!
+Add Comment
( 2 Comments)
Topic: Windows 7
The Windows 7 Home, Professional, and Ultimate editions will retail at a lower price than Vista. The upgrade pricing is available for XP and Vista users but XP users will have to perform a clean install. Gone is the Business edition. It's now back to it's pre-Vista Professional name.
Windows 7 Pricing:
- Home Premium New User: $199.99, Upgrade: $119.99
- Professional New User: $299.99, Upgrade: $199.99
- Ultimate New User: $319.99, Upgrade: $219.99
+Add Comment
( 1 Comments)
Topic: Windows Users
Protect your computer before it slows down, you lose data, or someone steals information. The basics are an antivirus program, Windows Updates, and a firewall. Beyond that, I like to use several programs that add layers of protection to your computer.
+Add Comment
See what services are running inside of SvcHost.EXE. See what is causing your 99% CPU usage.
+Add Comment
( 1 Comments)
If your computer was fast but is now slow, you can use techniques such as adware removers, defrag, and others to bring your PC back to life! You can also add hardware to speed up your computer (RAM, SATA HD, better video card, etc.).
+Add Comment
( 1 Comments)
What is the maximum file + path name allowed in Windows?
+Add Comment
Topic: Windows Vista
Windows Help program (WinHlp32.exe) does not ship with Microsft Vista nore with Windows Server 2008 but is available for download.
+Add Comment
To create a shortcut, right click on the deskop and select New | Shortcut. The old ways of altering the properties or even copying existing shortcuts is now very limited.
+Add Comment
Topic: Windows XP
Group: Computer Tech
Topic: Backup Software
Our FAQ list primarily for our clients where we highlight the most important Carbonite questions.
+Add Comment
To add an extension, right click on a file, select Properties. On the Carbonite tab, check the Back up files of this type (within folders selected for backup) checkbox. Alternatively, you can specify specific files to back up by right clicking the file and selecting Carbonite | Back This Up.
+Add Comment
Topic: Computer Tech
Topic: Domains
For a particular user on a particular computer, all programs installed for all users will still be available whether they log into their computer or the domain. You will have to migrate all other user specific settings either manually or use an automated tool.
Both of which are incomplete so expect to have to manually migrate some application specific settings and data for each user. At a minimum, log into the old local account and migrate My Documents, Desktop, Favorites, and perhaps e-mail such as the Outlook .PST or Outlook Express .DBX files.
+Add Comment
Topic: RAM
DDR RAM generally comes in one of four speeds: PC1600, PC2100, PC2700, and PC3200.
+Add Comment
Topic: Software
If you maintain more than a few computers, here are 10 applications you should have in your toolbox of software.
+Add Comment
( 15 Comments)
In a batch file, schecule DOS command shutdown. Use shutdown /? for specifics. Use net stop to kill services before hand if you wish. Use task scheduler to schedule the execution of the batch file.
+Add Comment
Topic: Windows Server 2003
In Windows Server 2003 terminal server, how do you automatically log off disconnected sessions? I'm getting the following error:
"The terminal server has exceeded the maximum number of allowed connections. The system can not log you on. The system has reached its licensed logon limit. Please try again later."
+Add Comment
Topic: Wired Networking
Group: Computer Industry
Topic: General News & Trends
Borland's annual developer conference was held this month in Long Beach CA. Attending the conference for Prestwood were Scott Wehrly, Mike Prestwood, and Kim Berry.
Posted By Mike Prestwood,
Post #100027, KB Topic: General News & Trends
+Add Comment
( 1 Comments)
Topic: IT Water-Cooler for Power-Users
Industry links. Add your computer related website to our list of websites.
Posted By Mike Prestwood,
Post #100474, KB Topic: IT Water-Cooler for Power-Users
+Add Comment
List of books and articles every IT professional should read. Add your recommendations!
Posted By Mike Prestwood,
Post #100150, KB Topic: IT Water-Cooler for Power-Users
+Add Comment
( 10 Comments)
Topic: Lighter Side
Topic: Techie Jokes
Group: Technical Writing
Topic: Publishing
Use up to four levels within articles (Heading 1..4). Within text, bold language elements and menu options. Use italics to bring attention to non-code things such as companies, important words, etc. Use bold+Italic for embedded topics and follow with a colon. Use the paragraph style for text and preformatted for code. Max width for images is 700 pixels.
+Add Comment
Group: PM, Process, and PSDP
Topic: PSDP & Process
This change management procedure is specific to Prestwood Software Development Process (PSDP). PSDP is our free process we maintain and distribute as well as use with our own clients. Althought this is specific to PSDP, you can read it with an eye toward your own change management procedure. Do you use version control software? Do you use promotion groups?
+Add Comment
( 2 Comments)
Topic: PSDP Analysis
The term software artifact has a general meaning in software development process. Several processes have used this term as part of their process. This article focuses on both the general definition and a specific implementation in PSDP Online.
+Add Comment
Topic: PSDP Development
Guidelines for create proof of concepts (POCs).
+Add Comment
Topic: PSDP General
Group: Staff Intranet
Topic: Coding Div Training
Ted talk on design appropriate for software developers.
+Add Comment
Topic: Directors (Tech=AD/MP Others)
Kick start tech staff. Watch tech whiteboard to make sure all use their planner. Plus watch it throughout day to make sure they enter timers within 5 minutes of returning and have one running at the office for their stuff. All=whiteboard/clean. Each=Planner, My Home, communication, then work from assignments.
Posted By Mike Prestwood,
Post #102329, KB Topic: Directors (Tech=AD/MP Others)
+Add Comment
Topic: eBay Management (AT)
Topic: Filing (LP/AP)
At least twice a week, file all papers in GRAY slots on top of filing cabinet.
+Add Comment
Topic: Holiday Cards, Oct/Nov (LP)
The holiday season is a great opportunity to "touch base" with every single client.
Posted By Mike Prestwood,
Post #102064, KB Topic: Holiday Cards, Oct/Nov (LP)
+Add Comment
Topic: Marketing
Claim your free listing. Phone verification required.
+Add Comment
Topic: Monthly Coupons (AT)
Maintain coupon database and printed coupon at front of office.
We use retention coupons to close a deal and to help soothe an upset client. Prize coupons require an authorized signature.
Posted By Mike Prestwood,
Post #102514, KB Topic: Monthly Coupons (AT)
+Add Comment
Topic: Office Cameras (AT)
Topic: Client Forms
Covers Timer Billing, WO Billing, and Items Tickets.
+Add Comment
Group: PrestwoodBoards
Topic: Message Board Help
How to become a moderator and moderator's guide.
+Add Comment
How to create a custom avatar for use with http://www.prestwoodboards.com.
+Add Comment
Our Prestwood Community rank titles are based on Star Trek's Starfleet Officer Ranks. I know, I know, it's a bit geeky, but what the heck. You rise up in the ranks by earning Prestwood points with our Member Points Program. You earn points by participating in our online community: visit, post, etc. You can spend your points in our online store.
Cadet 1st Year=, Lieutenant=, Commodore=, more...
The easiest way to earn points is to visit daily and post to our Prestwood Message Boards.
+Add Comment
( 3 Comments)
Topic: PrestwoodBoards
Displaying code snippets in the knowledge base and message boards can be a bit tricky. You cannot use "&_lt;", "&_gt;", "&_amp;lt;", nor "&_amp;gt;" (minus underscores).
+Add Comment
A message board is for Q&A, blogs are personal, and WIKI's are controlled.
+Add Comment
From any group, you can display a random tidbit, article, cross reference example, or message board thread. This is a fun and convenient way to browse content quickly to find interesting gems. To use this new feature, visit your favorite group and click on one of the random links in the left column menu.
+Add Comment
( 2 Comments)
The Prestwood Online Community rules and disclaimers. Essentially, our policies all center around be-friendly, don't flame, encourage more discussion, and limit advertising to approved areas.
+Add Comment
Good behavior while participating in online communities, blogs, newsgroups, message boards, etc. Although this article is specific to our website, it's intention is general in nature.
+Add Comment
Go to pda.prestwood.com for the small screen version of PPC with small screen features such as a random tidbit browser for studying on the go! All pages are specially designed to look as good as possible on your tiny-screen phone, iPhone, Blackberry, PocketPC, or Palm. To get started, browse to pda.prestwood.com with your PDA-ish device.
+Add Comment
Group: Prestwood IT Solutions
Topic: ASPSuite
This error is usually a result of folder permissions.
+Add Comment
Topic: ATIS
The current version of ATIS is 4.9. We are currently focusing on supporting existing ATIS customers.
+Add Comment
( 1 Comments)
Topic: Coding Services Info
To Do:
- Create a new project ticket to store requirements.
- Create 1 tasks or artifact for each specific feature or deliverable to the client. For example, one artifact for the framework, and one for each form, report, and supporting application such as an installation program, or help file. If a printed user manuel is desired, we usually complete that with a separate Documentation project, but you could add that as a task to the requirements document as well.
2-Step or Rolling Estimates
With our 2-Step approach, we stop after an initial step-1 effort and seek authorization to build the application. With our rolling estimates approach, we just roll right into building the application frequently starting the initial coding phase toward the end of a Req+Design phase.
Informal, Formal, and Robust
For our PSDP informal path, the requirements project is approved and we usually just roll with the requirements project as Step-2 of our 2-Step approach. With our Formal and Robust paths, our preferred technique is to copy the initial requirements into a new project and close the Initial Requirements project as complete prior to building the application. This allows us to establish a baseline of requirements and estimates we can measure ourselves against as the project proceeds. Plus, it clearly documents and changes in scope.
Posted By Mike Prestwood,
Post #102413, KB Topic: Coding Services Info
+Add Comment
( 3 Comments)
Project management. Generally project management ranges from 10% to 30% of a project budget. However, the amount of project management required depends on the project.
Posted By Mike Prestwood,
Post #101003, KB Topic: Coding Services Info
+Add Comment
When converting an application, developers need access to a working version of the old app.
Setup old application so Prestwood developers have access to exercising the application. The old app can be setup at Prestwood, or at the client. If at the client, we need VPN access available to the application throughout the duration of the project.
Posted By Mike Prestwood,
Post #102412, KB Topic: Coding Services Info
+Add Comment
Help stabilize Paradox System with our proprietary procedure including oplocks, BDE settings, software updates (latest appropriate BDE/Paradox), and stabilize computers too. Also includes review of deployment architecture (appropriateness).
Posted By Mike Prestwood,
Post #102140, KB Topic: Coding Services Info
+Add Comment
( 4 Comments)
Topic: eStore Storefront Software
Alter w_pay.inc. Prestwood eStore ships with an example that uses authorize.net.
Posted By Mike Prestwood,
Post #100237, KB Topic: eStore Storefront Software
+Add Comment
( 1 Comments)
Use pay.inc to integrate various merchants.
Posted By Mike Prestwood,
Post #100093, KB Topic: eStore Storefront Software
+Add Comment
Topic: Historical Archive
Picture tour of the Prestwood offices at 8421 Auburn Blvd, Suite 256 (Auburn Oaks Plaza business complex).
+Add Comment
( 9 Comments)
Topic: JobDB
Code example of including a list of the 10 most recent jobs from Prestwood JobDB. (Prestwood JobDB is a module available with Prestwood ASPSuite.)
+Add Comment
Topic: Load Balancer
Topic: Prestwood eMag
Topic: Prestwood I.T.
Topic: Prestwood IT Events
Prestwood IT received two Best of Citrus Heights 2011 plaques at the annual Best Of luncheon. Prestwood IT won for best company in both Web Design and Computer Consulting categories. The event was sold out with over 150 attending.
+Add Comment
( 1 Comments)
Topic: Prestwood Services
Topic: RequestDB
Code example of including the RequestDB mini control panel in your pages (for example, as part of your intranet).
+Add Comment
Topic: ResumeDB
Code example of including a list of the 10 most recent resumes from Prestwood ResumeDB. (Prestwood ResumeDB is a module available with Prestwood ASPSuite.)
+Add Comment
Topic: Tech Services Info
DriveSavers Partner. After our recovery attempts offer to send to DriveSavers or equivalent. Price ranges from $2500 to $10000
+Add Comment
( 4 Comments)
Computer data backup services for home users and small businesses in the greater Sacramento, CA area including online backup for disaster recovery, onsite hard drive backup, redundant hard drives in servers AND KEY WORKSTATIONS, and data backup and restore from one computer to another.
+Add Comment
Topic: Web & Marketing Services Info
Topic: Help Wanted!
We are always looking for talented developers to work with us at our corporate office in Citrus Heights, CA and remotely from your home office.
+Add Comment
( 1 Comments)
We are always looking for talented developers to participate in our message boards, post articles, etc.
+Add Comment
( 1 Comments)
New unpaid intern position posted to Craigslist. We hire about 1 in 4 techs that go through our formal intern program. Either way, it's a great way to gain some real industry experience.
+Add Comment
( 6 Comments)
Help Wanted!
Computer Techs and .Net Coders wanted
Do you live within 30 minutes of our office? Contact Us. Hiring now for the following positions:
- Server Tech
- .Net Programmer
- Delphi Programmer
- Paradox Programmer
Fax your resume to 916-726-5676.
Are you a talented server tech or .Net coder? If you live within 30 minutes of Citrus Heights, CA (near Sacramento), and are looking for work, contact us. We are looking to fill two postions at our corporate office in Citrus Heights (sorry, no remote work available).
+Add Comment
( 8 Comments)
We offer 2 referal programs: client and general .
+Add Comment
Topic: Company Info
New computer support brochure!!! Printable versions of our brochures and flyers in PDF format.
+Add Comment
( 4 Comments)
Listing of Prestwood IT awards. We will back fill with our varioius wins as time allows.
+Add Comment
( 1 Comments)
Social networking is a bit confusing! Emailing and calling are still the standards. Is faxing still ok? What about Facebook? Do I friend someone or become a fan of their fan page? Wait, what happened to fan pages? Are they now Facebook pages? What about Facebook groups? What about LinkedIn, YouTube, Twitter, MySpace, and others?
The following articles are posted to the PrestwoodBoards knowledge base:
The Prestwood Strategy: Although we still prefer phone calls and email, we do use social media to reach out. Our primary form of social networking is not with our clients, but with fellow IT professionals at PrestwoodBoards.com. Use the link above to learn more including how to interact with Prestwood IT, our other websites and groups, and our staff including Mike Prestwood.
For more information see...
+Add Comment
( 2 Comments)
Prestwood IT believes in community and participates as frequently as possible in sponsorships.
+Add Comment
( 3 Comments)
Group: Analysis & UML
Topic: Data Flow Diagrams (DFD)
DFDs document a process by documenting the flow of data throughout the process. They depict how data interacts with a system. They can be used to engineer a new process, document an existing process, or re-engineer an existing process.
Posted By Mike Prestwood,
Post #100887, KB Topic: Data Flow Diagrams (DFD)
+Add Comment
( 14 Comments)
Topic: Unified Modeling Language (UML)
This introduction to the UML covers symbol usage, definitions, and creating diagrams. The UML standardizes what diagrams with what symbols for what situation. The UML is complete with diagrams for analysis, design, and coding. Use use case diagrams to document how users (actors) use a system (a use case). Use class and object diagrams for the design and coding of a system. A class is the prototype for an object. An object has attributes (properties) and the current values of those properties is the current state of the object.
Posted By Mike Prestwood,
Post #100143, KB Topic: Unified Modeling Language (UML)
+Add Comment
( 2 Comments)
Group: Microsoft Access
Topic: Language Basics
Access VBA, like all the VB-based languages, uses a single quote (') or the original class-style basic "REM" (most developers just use a quote). Access VBA does NOT have a multiple line comment. Directives are sometimes called compiler or preprocessor directives. A # is used for directives within Access VBA code. Access VBA offers only an #If..then/#ElseIf/#Else directive.
+Add Comment
( 7 Comments)
Same as VB. Access VBA logical operators:
and |
and, as in this and that |
or |
or, as in this or that |
Not |
Not, as in Not This |
+Add Comment
( 3 Comments)
Access VBA is a loosely typed language. Declaring variables is optional unless you use the Option Explicit statement to force explicit declaration of all variables with Dim, Private, Public, or ReDim. Using Option Explicit is strongly recommended to avoid incorrectly typing an existing variable and to avoid any confusion about variable scope. Variables declared with Dim at the module level are available to all procedures within the module. At the procedure level, variables are available only within the procedure.
+Add Comment
( 2 Comments)
Topic: Language Details
Access VBA is a non-OOP language with some OOP features. It offers both Subs and Functions. A Sub does not return a value while a Function does. When Subs and Functions are used in a class module, they become the methods of the class.
+Add Comment
( 1 Comments)
Group: Website Owners
Topic: Getting Started
List of 20 reasons why you need to be on the Internet including to establish a presence/advertise, serve your customers, network with staff and vendors, to support your customers 24 hours a day, to reach the media, and to serve your local market.
Use these reasons as an Internet and email marketing guide for your web site. Does your website fully utilize each applicable reason?
+Add Comment
( 3 Comments)
A static website is like a brochure. A dynamic website uses a database to present large amounts of data.
+Add Comment
Topic: Internet Marketing
Marketing and sales is about reaching out to people. People are on social networks so you, or your company, should be out there too. For some companies, a particular social network such as Facebook is another valuable marketing channel. For others, a social network might be a way they interact with their key customers or vendors.
+Add Comment
( 7 Comments)
Currently Facebook is the "it" website for social networking. Create a business page for your business, but ONLY if you‘re going to post business stuff to it at least once a month. A simple approach is to show the more social side of your business. Yes, you can post company happenings like specials, awards you‘ve won, events you‘re attending, and company functions like company picnics and get togethers.
You have to have a personal account, but if you really don‘t want to be on Facebook, you can create a personal Facebook account and only use it for business. This approach allows you to friend clients and interact with them, but you‘ll have to be disciplined and keep your family and true friends off of it, and keep it business focused. Meaning, like the old days, keep your politics, religion, and sex to yourself. You‘ll have to act within your personal Facebook page like you act at the office--professionally at all times.
If you already have a personal account, create a Facebook page for your business. If you don‘t wish to mix personal info with business, set your privacy settings to friends-of-friends and direct business-folk to your page. Facebook groups are limited to 5,000 members and are used for family, or friends, or club-like activity. However, if your club activity is public, it is better to use a fan page any way. Just like your public account, fan pages are indexed by the search engines but groups are not.
+Add Comment
( 8 Comments)
Topic: Website Design Services
e-Commerce * e-Business * Members-only * Online Databases
Posted By Mike Prestwood,
Post #100994, KB Topic: Website Design Services
+Add Comment
Topic: Website Owners
Group: Delphi Prism
Topic: Delphi Prism
In Prism, a string can be nil (unassigned), assigned an empty string (""), or assigned a value. Therefore, to check if a string is empty, you have to check against both nil and (""). Alternatively, you can check the length of the string or use String.IsNullOrEmpty.
+Add Comment
Topic: Tool Basics
Can I share code between a Delphi and a Dephi Prism project? I want to have a single source Win32 and .Net application.
+Add Comment
( 2 Comments)
Topic: Language Basics
In Prism, everything is within a class (just like with C#, VB.Net, and Java). So you create class methods using the method keyword. Alternatively, you can use procedure or function if you want the compiler to enforce returning or not returning a value.
+Add Comment
Unlike Delphi, Prism performs implicit casting. To concatenate two strings, a string to an integer, or a string to a floating point number, use the + operator. For example, to convert a floating point number to a string just concatenate an empty string to the number as in "" + 3.2.
+Add Comment
( 3 Comments)
Topic: Language Details
Like Delphi, Prism supports overloading. However, Prism supports implicit overloading (no need for an overload keyword).
+Add Comment
Topic: OOP
Prism supports abstract class members and abstract classes using the abstract keyword. An abstract class is a class with one or more abstract members and you cannot instantiate an abstract class. However, you can have additional implemented methods and properties. An abstract member is either a method (method, procedure, or function), a property, or an event in an abstract class. You can add abstract members ONLY to abstract classes using the abstract keyword. Alternatively, you can use the empty keyword in place of abstract if you wish to instantiate the abstract class.
+Add Comment
Declare your class in the Interface section. Then implement the class in the Implementation section. To create an object instance, use the New keyword. Optionally, you can use Create for backword compatibility with Delphi if you turn it on in the compatibility options. Since Prism does have a garbage collector, you do not have to free the object. If you need to free either unmanaged resources or resources where "timing" is important, implement IDisposable and take control of freeing the object yourself using Dispose.
+Add Comment
( 1 Comments)
Prism uses unnamed constructor methods for constructors. Prism also supports a Create constructor method for backward compatibility with Delphi for Win32.
+Add Comment
( 1 Comments)
Unlike Delphi, Delphi Prism uses the .Net garbage collector to free managed object instances. Prism does not have nor need a true destructor.
In .Net, a finalizer is used to free non-managed objects such as a file or network resource. Because you don't know when the garbage collector will call your finalizer, Microsoft recommends you implement the IDisposable interface for non-managed resources and call it's Dispose() method at the appropriate time.
+Add Comment
With Prism, you use the Interface keyword to define an interface and then you include one or more interfaces where you specify the single class inheritance (separated by commas).
+Add Comment
( 1 Comments)
In Prism you can set the visibility of a member field to any visibility: private, protected, public, assembly and protected or assembly or protected. Prism supports the readonly modifier for member fields which is handy for constant like data. In this case, I chose not to preface my read-only member field with "F" so it's usage is just like a read-only property. Prism also support the class modifier (static data) for member fields. Delphi developers should notice the use of := to initialize a member field (in Delphi you use an =).
+Add Comment
( 1 Comments)
Prism supports a full suite of member modifiers. Prism virtuality modifiers are virtual, override, final, and reintroduce. Prism general modifiers are abstract, empty, async, external, locked, unsafe, implements, and iterator. Not all member types support all member modifiers. For example, member fields support only readonly and implements.
+Add Comment
Same as Delphi. In Prism, you specify a virtual method with the virtual keyword in a parent class and replace it in a descendant class using the override keyword. Call Inherited in the descendant method to execute the code in the parent method.
+Add Comment
Prism supports both partial classes and partial methods using the keyword partial. A partial method is an empty method defined in a partial class.
+Add Comment
Topic: Delphi for .Net Archive
Delphi 8 fix for Required package Borland$ not found caused by the .Net Framework service pack 1 update.
Posted By Mike Prestwood,
Post #100270, KB Topic: Delphi for .Net Archive
+Add Comment
( 21 Comments)
Group: Client Extranet
Topic: Coding Services
Usually includes screenshots with text, access to physical database for reference, or we document existing database. Other documentation might include creating videos of old app focusing on walking through of various use cases.
- Create app record in Enterprise Modeling, complete 100%.
- Create Old Requirements Document project. Usually best to stick with one task/artifact per screen. Skip General Requirements because that applies to new projects.
- Add App Specific Actors.
- Add App Specific Definitions.
- [Optional] Document old app General Design.
+Add Comment
( 8 Comments)
Prestwood uses database expertise in development of a new student tracking application for renowned Chicago Department of Cultural Affairs/Gallery 37.
+Add Comment
( 4 Comments)
Prestwood uses database expertise in development of a new student tracking application for renowned Chicago Department of Cultural Affairs/Gallery 37.
+Add Comment
( 4 Comments)
Topic: New Client Area
What is the advantage of working with a smaller consulting firm like Prestwood versus a Big 5 IT consulting firm?
+Add Comment
( 4 Comments)
Welcome to our New Client area and thank you for considering Prestwood Software for your software development outsourcing needs.
+Add Comment
Topic: PS Hosting
Topic: PSDP Step 1-Discovery
Estimating the time to develop an entire project at the beginning of a project is a tricky task because of too many unknown variables.
Posted By Mike Prestwood,
Post #100461, KB Topic: PSDP Step 1-Discovery
+Add Comment
During Discovery we decide on an approach that works for both companies, establish an initial budget, and document what the software must do.
Posted By Mike Prestwood,
Post #100460, KB Topic: PSDP Step 1-Discovery
+Add Comment
The best way to get started is to submit a New Ticket. This ticket will be used to track your project. If you're ready to get started, you can open a support account and optionally pre-pay for some development hours.
Posted By Mike Prestwood,
Post #100462, KB Topic: PSDP Step 1-Discovery
+Add Comment
Topic: PSDP Step 2-Plan
During the planning step we document how the software will satisfy the requirements (the what) using a General Design followed by a Detail Design phase.
+Add Comment
Topic: PSDP Step 3-Build
Quality is one of the factors that determines how much a project will cost. Functional applications are cheaper and faster to get to version 1.0 but cost more to maintain and enhance. In PSDP, functional applications include temporary and moderat risk projects. Robust applications cost a little more to get to version 1.0 but cost less to maintain and enhance. In PSDP, robust applications include high risk, commercial, and critical applications.
+Add Comment
During the building step, we actually build and debug the software with the Initial Coding and Testing and Rework phases.
+Add Comment
Topic: PSDP Step 4-Deliver
The Delivery of your software can be as simple as us emailing you the installation file or delivery can include on-site installation and training.
+Add Comment
( 1 Comments)
Topic: Working Remotely with PS
For online business chatting, we use MSN Messenger. MSN Messenger also works with Windows Messenger which comes with Windows XP and above. MSN Messenger is a free download.
Posted By Mike Prestwood,
Post #101101, KB Topic: Working Remotely with PS
+Add Comment
For file management (to and from you), we do not normally use FTP. Instead we use our My Uploads feature to both upload a file to Prestwood and to view existing account files.
To get to your uploads, from the main pull-down menu click My | More... | My Uploads. Use the Upload a File option to send us a file. Use the File Manager options to view existing files you and others have uploaded to your account and files attached to notes. You can add a note to your account, tickets, and PSDP items (tasks, defects, requirement items, etc). All note attachments also show up in your My Uploads area.
Posted By Mike Prestwood,
Post #101799, KB Topic: Working Remotely with PS
+Add Comment
We offer both Vault and SourceOffsite to manage source code. Both have nearly the same feature set and both offer a remote desktop Windows applications for checking source code in and out.
Posted By Mike Prestwood,
Post #101103, KB Topic: Working Remotely with PS
+Add Comment
Topic: Dr. Bott
A Dr Bott uploader. This wizard uploads DrBott.com store items to our ASPSuite eStore storefront software. We can customize it to upload to your store from any drop-shipper.
+Add Comment
( 1 Comments)
|
|