Variable Public ...

Variable Public ...

Postby Carlos Sincuir » Wed Feb 01, 2006 2:35 am

Hola a todos,
he tenido esta duda desde hace ya un tiempo, les comento:
Yo declaro una Variable 'x' como Public en una funcion, pero siempre que compilo xHarbour me da este mensaje:

Warning W0001 Ambiguous reference: 'xVariable'

Y si compilo con el flag /es2 no me genera el archivo .c, ya que obtengo el warning arriba mensionado.
Pues lo que tengo que hacer es quitar la severidad de salida del flag /es2, y el programa se genera sin ningún problema, pero si realmente no tengo definida otra variable no recibo ningun warning y puedo tener algún error en tiempo de ejecución.

Porque una variable definida como PUBLIC es tomana como una referencia ambigua? alguien pude contestar esta mi duda.

Saludos,

Carlos Sincuir.
Carlos Sincuir
 
Posts: 38
Joined: Mon Nov 28, 2005 2:10 pm

Postby Antonio Linares » Wed Feb 01, 2006 9:11 am

Carlos,

Has probado a usarla con Memvar-> delante ?

Memvar->variable
Last edited by Antonio Linares on Wed Feb 01, 2006 2:08 pm, edited 1 time in total.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41449
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Variable Public ...

Postby Carlos Sincuir » Wed Feb 01, 2006 12:57 pm

Antonio,
Primero que nada gracias por contestarme.
Pues no muy entiendo tu respuesta pero aca te mando un ejemplo de lo que stoy haciendo:

Code: Select all  Expand view
Funcionta Prueba()
Local i, j
Public nRow

nRow := 1
....


Pues si se compila con xHarbour siempre de da el mensaje
Warning W0001 Ambiguous reference: 'nRow

Y necesito que la variable nRow sea pública porque la utilizo en una formula de Excel con la clase TExcels, Ej.:

Code: Select all  Expand view
@ 2,3 XLS FORMULA _SUM( 8, 3, nRow, 3 )


y si no es Public nRow, obtengo un error en tiempo de ejecución.

Saludos.

Carlos Sincuir
Carlos Sincuir
 
Posts: 38
Joined: Mon Nov 28, 2005 2:10 pm

Postby Antonio Linares » Wed Feb 01, 2006 2:10 pm

Carlos,

Ha sido un lapsus, es memvar:

memvar->nRow := 1

otra solución es escribir arriba, al comienzo del prg:

memvar nRow

con lo que el compilador entiende de que se trata de una variable pública.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41449
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Carlos Sincuir » Wed Feb 01, 2006 3:51 pm

Listo Antonio, con definir al inicio del programa las variables como Memvar quedo solucionado, muchas gracias.

Saludos.

Carlos Sincuir
Carlos Sincuir
 
Posts: 38
Joined: Mon Nov 28, 2005 2:10 pm

Cambio variables a clase

Postby leandro » Thu Feb 02, 2006 2:46 pm

Amigo, como vas?

Amigo no se si tu programa esta ya desarrollando por completo o estas empezando a desarrollar. Pero como consejo te diria que pases todas tus variables públicas a una clase. A mi me a servido mucho si quieres mandame un correo y te doy ejemplo.

Para mi funciona mejor que las PUBLIC
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1489
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 137 guests