 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Angell Cdt

Registrado: 08 Feb 2005Mensajes: 18
|
Publicado: Jue 07 Abr, 2005 12:31 pm Asunto: Variables entre distintas forms |
|
|
Tengo 3 forms, y deseo utilizar dos variables globalmente en las 3, ya he mirado las soluciones que se proponen en el foro y ninguna me ha funcionado.
Las variables son: int NumUser y short NumFichero
He probado a ponerlas con extern:
| Código: | class TForm1 : public TForm
{
__published: // IDE-managed Components
TLabel *Label1;
TLabel *Label2;
TEdit *Edit1;
TComboBox *ComboBox1;
TButton *Button1;
void __fastcall ComboBox1Change(TObject *Sender);
void __fastcall Button1Click(TObject *Sender);
// void __fastcall CargarForm1(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
extern PACKAGE int NumUser;
extern PACKAGE short NumFichero;
void __fastcall CargarForm1(TObject *Sender);
TForm1 *Form1; |
y se produce el siguiente error, al utilizar la variable en Unit1:
[Linker Error] Unresolved external '_NumUser' referenced from D:\COPIA DE PROYECTO\UNIT1.OBJ
Quitandole la palabra PACKAGE tampoco funciona.
Tambien he probado declarandolas en el public de la form1:
class TForm1 : public TForm
| Código: | {
__published: // IDE-managed Components
TLabel *Label1;
...
...
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
int NumUser;
short NumFichero;
}; |
Pero a la hora de acceder en la unit3, mediante el codigo:
| Código: | ShowMessage(Form1->NumUser); |
se produce una violacion de memoria en timepo de ejecuccion.
Por si ayuda, en Unit3.cpp tengo: | Código: | #include "Unit3.h"
#include "Unit1.h" |
Y en Unit1.cpp: | Código: | #include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h" |
Alguna idea, ya no se que intentar. Gracias |
|
| Volver arriba |
|
 |
LordNemesis Master


Registrado: 31 Dic 2003Mensajes: 340Ubicación: México
|
Publicado: Jue 07 Abr, 2005 4:24 pm Asunto: |
|
|
SAludos...
En cuanto al error que te marca como acceso prohibido de memoria, seguramente es porque cuando intentas accesar a la variable publica, la forma que la contiene todavia no esta creada....
En mi caso, lo que yo trato de casi no hacer o hacer lo menos posible es declarar variables globales, casi siempre las declaro como miembros de mis clases y si las necesito en alguna otra, las paso como parametros, pero si forzosamente necesito que mis variables sean globales, entonces lo que hago es hacer una unidad independiente y ahi declarar mis variables y ya nada mas incluir la unidad en todas las demas donde las necesite... creo que asi se te va a facilkitar mucho mas...
Espero te sirva un poco mi consejo
saludos _________________ Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!! |
|
| Volver arriba |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|