There's many definitions of a "method," for lack of a better word, that's what I'm using to describe the methods CONSTRUCTOR, CREATE and WITH. Alone they serve no purpose, but you'll learn what each does, and how to use them here.
CREATE .. END CREATE
Using CREATE is exactly like using DIM
CREATE Form AS QForm
END CREATE
'' or
DIM Form AS QForm
However, the CREATE method offers more. It can save you typing, and also make your code look cleaner by embedding CREATEs (refer to Chapter 5). Any code you type inbetween the CREATE .. END CREATE method is automatically bound to that object. Since there's no point in regurgitating what was already mentioned, please refer to Chapter 5 for some examples.
WITH .. END WITH
The WITH construct is to provide the developer an easier way to reference properties, methods, and events of certain objects. Basically what it does is save you a lot of typing:
Form.Caption = "Hello"
Form.ShowModal
'' Using WITH
WITH Form
.Caption = "Hello"
.ShowModal
END WITH
You can also embed WITH .. END WITH statements:
Something.Another.Caption = "Hello"
'' Using WITH
WITH Something
WITH Another
.Caption = "Hello"
END WITH
END WITH
As you can see, the embedded WITH statement inherits the previous declaration. The period at the front tells the compiler to bind that variable to the WITH declaration. Anything which doesn't start with a period won't be bound, don't worry, decimal numbers won't be bound.
CONSTRUCTOR .. END CONSTRUCTOR
This method is only used inside a TYPE declaration when you're defining your own objects. It will give default values to your properties whenever your component is created (DIMmed).
TYPE NewObject EXTENDS QObject
Left AS INTEGER
CONSTRUCTOR
Left = 50
END CONSTRUCTOR
END TYPE
There's nothing to it, it's much like the CREATE method, except our object in this case is NewObject.