Spanish Problema con variable global.

Ingeniero Cognitivo

Active Member
¿Porque me dice que la variable global (ruta) no esta declarada?.

Gracias.
 

Attachments

  • Error variable global.jpg
    Error variable global.jpg
    207.3 KB · Views: 257

Gabino A. de la Gala

Well-Known Member
Licensed User
Longtime User
Revisa que tienes un error previo.
¿No tendrás la variable ruta declarada en más sitios?
 

Ingeniero Cognitivo

Active Member
Revisa que tienes un error previo.
¿No tendrás la variable ruta declarada en más sitios?
No. Solo hay lo que se ves ahi.
He revisado el otro error y se refiere simplemente a que he usado esa variable sin estar declarada supuestamente en otro acitivi.
Ahora que me fijo, ¿porque en el codigo de cada activiti hay un modulo de declaracion de variables globales si se supone que con un modulo es suficiente para usar esas variables en todas las activitis?.
 

josejad

Expert
Licensed User
Longtime User
Ahora que me fijo, ¿porque en el codigo de cada activiti hay un modulo de declaracion de variables globales si se supone que con un modulo es suficiente para usar esas variables en todas las activitis?

Puede que haya activities que no hayas ejectuado, por tanto la Sub Process_Globals no se ejecuta. Es decir, si las pones todas en Main, tendrás esas variables disponibles en todas las activities, pero puede que tengas variables que solo existan si ejecutas una activity en particular.

Con sólo el código que pones:
B4X:
Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
    Private xui As XUI
    Dim ruta As String
End Sub

Sub Globals
    'These global variables will be redeclared each time the activity is created.
    
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("1")
    ruta = File.DirAssets + "prueba"
End Sub

Lo único que me aparece es un 'warning' (Main - 21: Variable 'ruta' no usada (warning #9), que es normal ya que la variable ha recibido asignación, pero luego no se usa.
Así que tu error debe estar en otro lugar del código.
 

Ingeniero Cognitivo

Active Member

Puede que haya activities que no hayas ejectuado, por tanto la Sub Process_Globals no se ejecuta. Es decir, si las pones todas en Main, tendrás esas variables disponibles en todas las activities, pero puede que tengas variables que solo existan si ejecutas una activity en particular.

Con sólo el código que pones:
B4X:
Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
    Private xui As XUI
    Dim ruta As String
End Sub

Sub Globals
    'These global variables will be redeclared each time the activity is created.
   
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("1")
    ruta = File.DirAssets + "prueba"
End Sub

Lo único que me aparece es un 'warning' (Main - 21: Variable 'ruta' no usada (warning #9), que es normal ya que la variable ha recibido asignación, pero luego no se usa.
Así que tu error debe estar en otro lugar del código.
No puedo ejecutar nada mientras el compilador considere que hay una variable no declarada.
Alguien me ha sugerido que cambie el nombre de la variable. No entiendo porque, el caso es que ha funcionado y ya me acepta la variable como declarada. Luego probare la aplicacion para confirmar que funciona. Si funciona quedara claro que el nombre ruta entra en conflicto con algo pero no se con que. No he puesto ese nombre a otra cosa.
 
Top