Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Acceso a vars globales

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Acceso a vars globales Responder citando

Tengo una variable global declarada en el módulo principal. Esta variable es un parámetro que relleno desde un Form diferente, pero el problema está en que cuando vuelve al formulario principal que necesita este parámetro de entrada, la variable está vacía, es decir, no sabe nada acerca del valor dado en el Form2


Módulo principal:

int DATA; //Declaración de la variable. Es un entero que nos dice cuántos datos vamos a leer

Módulo Unit2.cpp:


extern int DATA;

//Evento que rellena la variable
void __fastcall TForm2::Button1Click(TObject *Sender)
{
DATA= StrToInt(NumDatos->Text);
Close();
}

¿Qué hago mal? ¿Y cuál sería la solución? GRACIAs por ayudarme

Volver arriba
Mensaje    Asunto: Acceso a vars globales Responder citando

No se si te va a servir mi respuesta,
¿has puesto #include "modulo ppal.h"?,

yo siempre lo hago en estos casos, metiendo la variable no como global, sino dentro de la clase TForm como publica.

A ver si te sirve, ya me contaras.

Volver arriba
Mensaje    Asunto: Acceso a vars globales Responder citando

oye, ¿quieres decir que declarandola como extern no seria suficiente
por lo poco que se es lo que me suena

venga, hasta luego

Volver arriba
Mensaje    Asunto: Acceso a vars globales Responder citando

Entiendo yo tenía un problema similar...

Prueba con esto:


//****************************************************************************************
En Modulo1.Cpp

#include "Modulo1.h"
#include "Principal.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
//---------------------------------------------------------------------------

static int DefaultBaudRate = 6;

static int ActuallyBaudRate = DefaultBaudRate;

#define COLARX 4096
#define COLATX 4096

//.... Metodos de la clase que utilizas...
//****************************************************************************************
En la declaración del Modulo2
Modulo2.h

class MiClase: public TForm
{
__published:
//....tus cosas....
private: // User declarations
public: // User declarations
void Cambiar();
__fastcall MiClase(TComponent* Owner);

int AuxiliaryBaudRate;
};

//****************************************************************************************
En la implementación del Modulo2
En Modulo2.Cpp

#include Modulo1.Cpp

__fastcall TMiClase::Miclase(TComponent* Owner)
: TForm(Owner)
{
//Guardar estado actual para poder recuperar
AuxiliaryBaudRate = ActuallyBaudRate;
}


void TMiClase::Cambiar()
{
ActuallyBaudRate = 10;
}

Bueno yo creo que hasta aquí podrías desenvolverte solo...

1) Al ejecutarse el constructor de MiClase el valor de AuxiliaryBaudRate cuál es?
R/Sencillo 6.

2) Cuál es el valor en el Módulo1.Cpp al ejecutarse Cambiar?
R/ pues 10.

joseluisbz@bigfoot.com

Volver arriba
Mensaje    Asunto: Acceso a vars globales Responder citando

Hola,
Disculpen si me estoy poniendo pesado, pero encuentro que respondiendo estos mensajes, voy aprendiendo bastante... (je)

Bueno, para que tu código funcione, tienes que poner :: delante de DATA, ésto indica que vas a usar la variable global DATA y no cualquier otra extern DATA. Así:

//Evento que rellena la variable
void __fastcall TForm2::Button1Click(TObject *Sender)
{
::DATA= StrToInt(NumDatos->Text);
Close();
}

Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.