5 Kinds of PB:
Custom class: Invisible user-defined classes, such as implementing a function polymorphism
Standard class: Standard invisible control extension classes
Custom visual: User-defined visible classes
External visual: External visual classes, such as OCX introduction
Standard VISUAL:PB Standard visual control extension
The difference between "control" and "Object":
In Pb, "control" and "Object" are classes, but the former is a visual class, the latter is not a class, called different. Whichever way you create it, for a PB library artboard, it's UserObject, and you can insert it into window by Insert-object-userobject or Insert-control-userobject, of course, This object should be visible. Another way to insert is through the PB IDE to the left of the object tree, directly with the mouse drag can be, this method can not only insert a visual UserObject, you can insert an invisible class (you can see it through View-non visual object llist)
For a copy of the code, you can use a way to interpret the inheritance from:
Double-click the object to observe the style
1: If it is just a datawindow or other control, it indicates that the object was inherited from Standsrt Visual;
2: If it is a complex of multiple controls, it means that it inherits from custom visual
3: If it is a control that does not exist in PB, it may be inherited from external Visual
4: If it doesn't have a layout view, it means it's inherited from custom Class.
5: If it layout the view, but does not have any controls, it means that it inherits from the standard class
Another option is to right-click the object, select Edit source, and look at its declaration, the Global type XXX from Yyy,yyy is the ancestor's type
Overall, from the horizontal and vertical perspective:
Transverse--standard,custom
Longitudinal--visual,nonvisual
Since it is standard, there are PB basic control events, attributes, etc., whereas custom has to customize many events and attributes
Speculative Check Code:
Select Edit Source to see its declaration that the Global type XXX from Yyy,yyy is the ancestor's type
If you are external visual, you can see the following code:
Global Type B from UserObject
Integer width = 288
Integer height = 168
UserObjects objecttype = externalvisual!
External: Generally with libray, better to recognize the