Gambas требует, чтобы все операторы DIM
были помещены перед любым исполняемым кодом внутри функции или подпрограммы (выделено мной):
http://gambaswiki.org/wiki/lang/dim
Все DIM
объявлениядолжен быть в FUNCTION
или SUB
перед первой исполняемой командой .
Поэтому измените свой код на это:
Public Sub Form_Open()
Dim nickname As String = "gambas"
Print "this will work"
Print "Your new name is " & nickname
End
Gambas 'Требование для предварительного объявления всех локальных переменных очень старое.Иногда это облегчает создание самодокументируемого кода и стимулирует создание коротких функций, но если функция имеет много промежуточных кратковременных локальных переменных, которые не могут быть немедленно инициализированы (например, внутри вложенных циклов внутри функции), тогда это затрудняет читабельность.YMMV.