Gambas had over 770 classes in December 2017. For special projects, it may be necessary to define required program functionalities in a new class (properties, methods and events) or to extend an existing class or reuse existing source code.
Answers to the question 'How to program a component' can be found on these Internet pages:
If you are more interested in how to reuse existing source code in new projects, you should have a look at these pages under the aspect library:
Modules are static classes. A module is only one single object, no further object can be created from it, but it is already its only possible incarnation. Therefore, you write source code that you want to export from a class file (*.class) into a module. However, if you want to create several objects from a template, you use a (dynamic) class. These classes are the blueprint for objects, because you create objects from classes. In a class, you define properties, methods and events that an object created can contain (properties), apply (methods) or react (events) to manipulate its data. You can create several objects from a class, all of which lead their your own lives at runtime.
The description of the programming of modules, classes, components and libraries as well as their use in sample projects can be found in → chapter 30 Modules, classes, components and libraries.