problema con nombre de usuario publico en cualquier parte

Post Reply
User avatar
DiGregorio
Posts: 42
Joined: Fri Nov 04, 2005 12:22 am
Location: Ven - Ita
Contact:

problema con nombre de usuario publico en cualquier parte

Post by DiGregorio »

saludos, feliz año,

como saben soy nuevo en harbour, y estoy migrando toda mi aplicacion de clipper, y bueno........¡


Tengo el siguiente problema: mi programa tiene varios prg, y cuando ingreso al mismo, le solicito una solo la clave al usuario y la valido contra un archivo dbf, en el cual esta la clave y el nombre del usuario, ahora bien quiero guardar ese nombre en una variable publica para usarla en cualquier parte del programa, para saber en todo momento como se llama el usuario. trate de hacerlo con una funcion que pasa el nombre de aqui para alla, pero necesito una manera mas sencilla

claveusu(cpass) donde cpass es la clave que introdujo el cliente


FUNCTION CLAVEUSU(cPass,prueb1)

IF NUSE('.\DATA\DB010',.T.,5,'','CLAVES') //ABRO EN MODO SHARE LA TABLA CLAVES
ELSE
CLOSE DATA
RETURN NIL
ENDIF

Select claves
DBGOTOP()
DO WHILE .NOT. EOF()
IF claves->clave=cpass
usuario:=claves->nombre ------>esta es la que quiero ver
CLOSE claves desde cualquier parte,
RETURN .T. como la defino y manejo
ENDIF para tenerla siempre
SKIP activa
ENDDO
close claves
RETURN .F.

yo en clipper la coloca publica y listo pero aqui no tengo ni idea, y la manera que he conseguido es super complicada y engorrosa. y este metodo debo usarlo en gran parte de todo mi programa.

de antemano gracias.
YamilBracho
Posts: 33
Joined: Mon Oct 17, 2005 11:56 pm
Location: Caracas, Venezuela

Post by YamilBracho »

Pues aqui es lo mismo puedes crear una variable publica para usarla en todos los modulos de tu aplicacion. Una mejor idea es tener un modulo o una clase donde tengas todas tuas variables publicas o quizas un arreglo y ese sea el unico que sea publico
User avatar
DiGregorio
Posts: 42
Joined: Fri Nov 04, 2005 12:22 am
Location: Ven - Ita
Contact:

Post by DiGregorio »

YamilBracho wrote:Pues aqui es lo mismo puedes crear una variable publica para usarla en todos los modulos de tu aplicacion. Una mejor idea es tener un modulo o una clase donde tengas todas tuas variables publicas o quizas un arreglo y ese sea el unico que sea publico

pero cuando a una variable la hago publica con public xxxx me da un error de compilacion, es que de verdad no tengo ni idea, podrias enviarme un pequeño ejemplo, gracias.
User avatar
VeRCE
Posts: 219
Joined: Fri Nov 04, 2005 2:34 pm
Location: Mexico D.F.
Contact:

Post by VeRCE »

DiGregorio wrote:
YamilBracho wrote:Pues aqui es lo mismo puedes crear una variable publica para usarla en todos los modulos de tu aplicacion. Una mejor idea es tener un modulo o una clase donde tengas todas tuas variables publicas o quizas un arreglo y ese sea el unico que sea publico
pero cuando a una variable la hago publica con public xxxx me da un error de compilacion, es que de verdad no tengo ni idea, podrias enviarme un pequeño ejemplo, gracias.
Una forma de hacerlo es la siguiente:
En tu programa principal haces lo que te indico

#include "FiveWin.ch"

MemVar nMiVarPublica

Function Main()

Public nMiVarPublica
...
...
...

Return NIL

y en todos tus demás PRGs deberás hacer lo siguiente:

#include "FiveWin.ch"

MemVar nMiVarPublica

Function blablablabla()
Return NIL

En conclusión, en todos tus demás prgs deberás poner
MemVar y tu variable para que puedas ver la variable
pública.

Saludos, espero te funcione, así lo trabajo yo.
Juan Carlos Salinas Ojeda
México. D.F.
-------------------------------------------------
User avatar
DiGregorio
Posts: 42
Joined: Fri Nov 04, 2005 12:22 am
Location: Ven - Ita
Contact:

Post by DiGregorio »

VeRCE wrote:
DiGregorio wrote:
YamilBracho wrote:Pues aqui es lo mismo puedes crear una variable publica para usarla en todos los modulos de tu aplicacion. Una mejor idea es tener un modulo o una clase donde tengas todas tuas variables publicas o quizas un arreglo y ese sea el unico que sea publico
pero cuando a una variable la hago publica con public xxxx me da un error de compilacion, es que de verdad no tengo ni idea, podrias enviarme un pequeño ejemplo, gracias.
Una forma de hacerlo es la siguiente:
En tu programa principal haces lo que te indico

#include "FiveWin.ch"

MemVar nMiVarPublica

Function Main()

Public nMiVarPublica
...
...
...

Return NIL

y en todos tus demás PRGs deberás hacer lo siguiente:

#include "FiveWin.ch"

MemVar nMiVarPublica

Function blablablabla()
Return NIL

En conclusión, en todos tus demás prgs deberás poner
MemVar y tu variable para que puedas ver la variable
pública.

Saludos, espero te funcione, así lo trabajo yo.
Hola Yamil, de verdad gracias, me funciono perfecto, lo que pasaba era que estaba usando el memvar pero habia dejado de usar el public, jajajja


gracias, feliz año
User avatar
Vikthor
Posts: 271
Joined: Fri Oct 07, 2005 5:20 am
Location: México

Post by Vikthor »

Yo lo hago de la siguiente forma:

Uso una variable static y una clase que maneja todas la variables del sistema pero como DATAS de la clase y no como variables públicas.

Y una función que me devuelve el objeto contenedor de las datas.

Es un proceso muy sencillo y fácil de usar.

Code: Select all

#INCLUDE "FiveWin.ch"
STATIC oApp

FUNCTION Main()
   oApp := TAdmin():New()
   oApp:Activate()
RETURN( Nil )

FUNCTION GetApp(); RETURN oApp

CLASS TAdmin From TWindow

   DATA oWnd
   DATA cIp
   DATA oIni
   DATA cRuta
   DATA cIniFile
   DATA cEmpresa
   DATA cBmpFondo
   DATA oBoton
   DATA oBar
   DATA SysName
   DATA cFont
   DATA oFont
   DATA oFont2
   DATA oTimer
   DATA oTray
   DATA oIcon
   DATA oUsuario
   DATA oMenu
   DATA aObj
   DATA oBrs
   DATA aDbf
   DATA oDbf
   DATA nEvento
   METHOD New() CONSTRUCTOR
   METHOD Activate()
   METHOD MainMenu()
   METHOD Save()
   METHOD End()
   METHOD KeyDown( nKey, nFlags )
   METHOD SetTray()
   METHOD MenuTray( nRow , nCol , oTray )
ENDCLASS


Vikthor
Post Reply