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

Registrado: 08 Jul 2003Mensajes: 36Ubicación: Barranquilla (Colombia)
|
Publicado: Vie 03 Oct, 2003 2:43 am Asunto: Constantes |
|
|
HOLA!
tengo un problema.. estoy creando unas constantes en mi programa que luego quiero usar dentro de una función, pero dentro de la función no tienen el valor que les asigne previamente. Todas las constantes definidas fuera de la función tienen el valor de 0 dentro de esta.
Asi declaré la constante pi:
| Código: |
//unit1.h
...
public: // User declarations
double pi;
...
//unit1.cpp
void __fastcall TForm1::FormCreate(TObject *Sender)
{
const double pi = 4*atan(1.0);
}
//---------------------------------------------------------------------------
|
Como hago para poder usar estas constantes dentro de mis funciones?
Ah, tambien note que con las variables que no declaro dentro de la función sucede lo mismo. HELP! |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 03 Oct, 2003 7:27 am Asunto: |
|
|
Yo lo hago así:
En el include del formulario 1 (por ejemplo): | Código: | class TForm1 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
double pi;
}; |
En el propio formulario asignas el valor por ejemplo en el OnCreate: | Código: | void __fastcall TForm1::FormCreate(TObject *Sender)
{
pi = 3.1415926;
} |
En los formularios que te haga falta usar esa constante pi tienes que poner el include correspondiente (#include Form1.h), y para usarla tienes que referenciarla con
Form1->pi.
Otra forma que tienes pasa por definir esas constantes en el fichero en que está la llamada a WinApi (si el projecto es Project1.bpr, en Project1.cpp). En algunos casos a mi me ha hecho falta arrastrar un valor desde ese módulo (por ejemplo, un parámetro de arranque); lo haría así:
| Código: | //------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
double pi = 3.1415926; <--- Asignación de la constante
USERES("Project1.res");
USEFORM("Unit1.cpp", Form1);
//------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}
//------------------------------------------------------------ |
Con esto defines el valor de pi, o de las constantes que te haga falta. Luego, en los formularios que sea preciso le expecificas la existencia de una definición externa:
| Código: | //------------------------------------------------------------
#include <stdio.h>
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
extern double pi; <----- Declaración de constante externa
//------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//------------------------------------------------------------ |
Cuando te haga falta usar esa constante pi, bastará con que la llames sin más; pro ejemplo:
| Código: | double nLongitud = 2 * pi * nRadio;
double nArea = nRadio * pi ^ 2 |
_________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Dom 05 Oct, 2003 10:54 am Asunto: |
|
|
Hola Temerario.
La forma más sencilla es la siguiente:
Te defines un archivo tipo *.h, por ejemplo: Constantes.h
y en él colocas las constantes que quieras:
const double PI 3.1415
const double PI2 6.2830
.
.
.
y en los archivos *.cpp donde estén las funciones que usan esas constantes incluyes el header, pero NO defines la constante otra vez dentro de la función:
#include "Constantes.h"
Y ya está. saludos. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| 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.
|