Tekst van runtime knop onbereikbaar (button Text property)

In bepaalde omstandigheden kwam ik op een foutmelding bij het gebruiken van de tekst die ingesteld staat bij een knop. De foutmelding:

Unknown symbol ‘Text’ in class ‘Control’

Unknown Symbol Text In Class Control

De klasse van het object waarvan ik de tekst eigenschap wil gebruiken is niet “Control”, maar wel “Button”, maar dat ziet Gambas niet. Toch niet ‘at runtime’, maar… :

Unknown Symbol Text In Class Control Debugged

Bij het stilleggen van het programma, en het selecteren van de betreffende code, toont hij de juiste tekst in de tooltip.

Daarom gebruik ik nu deze kleine omweg:

In plaats van de children van hboxItems aan te spreken met een index, en daarvan ineens de tekst op te vragen, wijs ik nu eerst het i-de item van de children toe aan een voorgedefinieerde button, en gebruik ik daarvan de tekst eigenschap:

Unknown Symbol Text In Class Control Solved

ps: Dit is een stukje code uit een complexer stuk programma, en om de fout te isoleren heb ik me hier beperkt tot het weergeven met DEBUG van de Text eigenschap; in werkelijkheid gebeurt daar iets anders mee, meer bepaald een drag’n’drop bewerking.

De buttons werden niet gemaakt in de Form designer, maar vanuit het programma, met als parent de hboxItems container. Daarom kan ik ze enkel onrechtstreeks aanspreken.

English summaray:
To use the Text attribute of a button (in this case), you have to make a button object first, then allocate the child object (with index i) to this button object. Then you are able to use the button text property.
The buttons in the hBoxItems were made under program control (at runtime), that’s why I have to call them in this inderect way, as children of the parent container.

This entry was posted in Gambas2. Bookmark the permalink.