Changes for build 098

Third version of HBasic object model.

One major problem in the last two version was handling widgets in the object tree correctly. The problem was that a widget had to be derived from one parent widget to be displayed on the screen and one  parent in the HBasic object tree.

In the first version (0.9.6) I tried to declare a special class HBObject (which had been derived from QObject) to manage the properties, methods and events of the objects. This fails because Qt widgets are also derived from QObject. Inheriting some class in my HBObject model two times from QOBject leads to different problems handling the methods and properties.

In the second version I tried to use QObject as a base class for all classes in the HBObject model. Subobjects and list of objects (like all projects or reports) have been stored  as children in the QOBject structure. The problem here was that Qt tries to create and manage children of the QObject class itself for complex widgets like QListView, QTabView, QScrollView and some other.

In the current version everything seems to work correctly and I therefore hope there will be no more changes in the base structure of the HBObject mode. There are still many changes in the objects of the HBasic IDE itself before they may all be used as objects within HBasic. The following image shows the updated package manager which displays a part of the HBasic object tree.




New types of database queries

Queries may not only select data but also insert, update or delete rows of data within a database table. One open problem here is how to handle the different SQL statements required by different databases to create a new table or insert new data into an existing table. If anybody can tell me which SQL statement doesn't work or which I should use for a special database backend send me an E-mail.





Created new widget for sheet editor

Previous versions of the sheet editor used the  QTable widget from the Qt library. Since I think that this widget was not flexible enough to be prepared for future changes I have started to implement my own table widget to edit sheet data.

     

Click the right mouse button within the sheet editor to start one of the new edit functions for the sheet.