Variables públicas

Variables públicas

Postby juan_arroyo_t » Thu Nov 11, 2010 4:10 am

Amigos del foro

Estoy llamando a una funcion desde la entrada de mi aplicación (desde la creación del menú)

La funcion que llamo es

Function CreaFac()
MEMVAR calle
PUBLIC calle := "Av. de los Pinos"
-----
-----
VerDatos()
-----
-----
RETURN NIL

VerDatos()
MsgInfo( calle )
-----
-----
RETURN NIL

-------------------------------------------------
Se supone que al crear variables publicas las puedo ver en cualquier parte de mi aplicacion, entonces porque cuando compilo
me aparecen mensajes de ambiguos reference ( en este caso en la linea de MsgInfo )

Si alguien me pudiera ayudar

Saludos
Juan Arroyo
México
FWH 7.12 VERCE 5.3 xHarbour 1.1.0
juan_arroyo_t@hotmail.com
User avatar
juan_arroyo_t
 
Posts: 196
Joined: Fri May 15, 2009 1:25 am
Location: Cuautitlán, Mexico

Re: Variables públicas

Postby jll-fwh » Thu Nov 11, 2010 5:20 am

Hola Juan:

Declarala en en fuente principal de la aplicacion antes de Main().

#INCLUDE "FiveWin.ch"

MEMVAR callee
/*------------------------------------------------------------------------------*/
Function Main()
/*------------------------------------------------------------------------------*/

Un saludo
JLL
Libreria: FWH/FWH1109 + Harbour 5.8.2 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA, OURXDBU
S.O: XP / Win 7 /Win10
Blog: http://javierlloris.blogspot.com.es/
e-mail: javierllorisprogramador@gmail.com
User avatar
jll-fwh
 
Posts: 408
Joined: Fri Jan 29, 2010 8:14 pm
Location: Meliana - Valencia

Re: Variables públicas

Postby wmormar » Thu Nov 11, 2010 5:39 am

juan_arroyo_t,

Efectivamente como dices, podras "ver" en todo el programa o proyecto la variable que declares como publica.

Pero hay ciertas restricciones que se tiene. Por ejemplo.

En el main debes hacer esto.
Code: Select all  Expand view
#include <fivewin.ch>

memvar calle
function main()
  public calle

  calle := "FWH forever"
  miotroprg()
RETURN NIL


otro prg:
Code: Select all  Expand view
#include <fivewin.ch>

memvar calle
function miotroprg()
   ? calle
return nil
 


Aqui si te das cuenta, veras que se coloca memvar calle en los dos PRGS, esto se debe hacer en todos los PRGS donde vayas a usar la variable calle, sino lo haces asi, te enviará un error, pues la variable no esta definida, no creada que son dos cosas diferentes.
William, Morales
Saludos

méxico.sureste
User avatar
wmormar
 
Posts: 1073
Joined: Fri Oct 07, 2005 10:41 pm
Location: México

Re: Variables públicas

Postby surGom » Thu Nov 11, 2010 10:47 am

Juan yo lo hago de la siguiente manera y no me da problemas

Code: Select all  Expand view

FUNCTION Main()
  LOCAL oBrush            // Almacena objeto BRUSH
  LOCAL oBar     // Almacena objeto BUTTONBAR
  LOCAL oCursorMano
  LOCAL oICON
  LOCAL oBmp
  LOCAL oFont
  LOCAL cinit := GetWinDir()+"\mega.ini"
  LOCAL memo:= GetpvProfString("camino","curpath",,cinit)
  LOCAL nBut := array(6)
  LOCAL cPantalla := GetpvProfString("pantalla","tipopan",,(GetWinDir()+"\mega.ini"))
  LOCAL cUsuario := (GetpvProfString("usuario","nombre",,(GetWinDir()+"\mega.ini")))




  local hDLL := LoadLibrary( "bwcc32.dll" )

  BWCCRegister( GetResources() )

  [color=#0000FF]public oApp := TApplication()[/color]
 


En oApp guardo variables que necesito que sean publicas

Luis
surGom
 
Posts: 639
Joined: Wed Oct 19, 2005 12:03 pm

Re: Variables públicas

Postby surGom » Thu Nov 11, 2010 10:51 am

No leí bien tu mensaje y tiene razón wormar lo que hago es por ejemplo

calle := oApp:direccion

y en caso de quere hacerla general

oApp:direccion := calle

Disculpa el apresuramiento al leer el mensaje

Luis
surGom
 
Posts: 639
Joined: Wed Oct 19, 2005 12:03 pm

Re: Variables públicas

Postby acuellar » Thu Nov 11, 2010 12:30 pm

Juan

Si usas el UEstudio como editor enlazador en la configuración del proyecto en opciones del compilador debe poner:
Warning level=0

Y no te saldrán los errores.

Saludos,

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1593
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Variables públicas

Postby Patricio Avalos Aguirre » Thu Nov 11, 2010 3:45 pm

hola

Para llamar una variable public antepone M->

Code: Select all  Expand view
PUBLIC cVar

M->cVar := "lo que sea"
 
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
Patricio Avalos Aguirre
 
Posts: 1059
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile

Re: Variables públicas (solucionado)

Postby juan_arroyo_t » Fri Nov 12, 2010 2:57 am

Muchas gracias amigos

Funcionó perfecto

Me incliné por el tip de William creo que porque es muy parecido a como lo utilizaba en clipper

Debo decirles que tengo poco que pase de clipper a fivewin

A todos muchas gracias

Saludos
Juan Arroyo
México
FWH 7.12 VERCE 5.3 xHarbour 1.1.0
juan_arroyo_t@hotmail.com
User avatar
juan_arroyo_t
 
Posts: 196
Joined: Fri May 15, 2009 1:25 am
Location: Cuautitlán, Mexico


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 84 guests