https://foro.gambas-es.org/viewtopic.php?f=4&t=7994&p=48078#p48078
-----------------------------------
Harpo
Domingo, 26 Abril 2020, 17:16

Re: Problema Con Control De Errores Y Return En Una Función
-----------------------------------
[quote user="tincho" post="48077"]Hola Harpo.
El error sucede porque se levanta el evento treeview1_select() antes que el treeview tenga elementos, de ahi el null.
La solución es usar unas banderas, por ejemplo cargado = true una vez que cargaste el treeview y en el evento treeview_select pones un condicional
 IF cargado = true then

Saludos.[/quote]

Hola y gracias por la respuesta.
No veo lo que comentas. El evento TreeView1_Select() se dispara por primera vez al asignar: Key = "*" en el proceso de carga, y en el evento se controla que si TreeView.count = 1 no continue.
He probado a poner una bandera (bCargando = True) y no afecta

Por otro lado el error que existe al final del proceso de carga es: 13 - Null Object. en _TreeView_Item._AddChild.136
En el código fuente del control TreeView:

[code linenumbers=false syntax=gambas]
Public Sub _AddChild(sKey As String)

  If Not $aChildren Then $aChildren = New String[]
  $aChildren.Add(sKey)

  If $aChildren.Count = 1 Then
    Try Inc GetTree()._GetParentItem(Me)._GrandChildren
  Endif

End
[/code]

El error que aparece en mi programa ejemplo viene del "Try" del código fuente anterior en el control TreeView. Probé a depurar el ejemplo que viene el código fuente de Gambas y efectivamente da error "Null Object", intenta incrementar el contador de nodos hijos (_GrandChildren) del nodo padre del que estamos insertando (_GetParentItem(Me)) en el TreeView (GetTree()). Y lo hace solo para el primer nodo ($aChildren.Count = 1) que es el nodo Root y no tiene padre. De ahí el nulo. Si se comenta la linea del "Try" el control TreeView funciona perfectamente.

Quizá en este ejemplo se vea más claro que error es del control TreeView.


