| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
betogu84 Ens

Registrado: 30 Abr 2003Mensajes: 26Ubicación: Barranquilla
|
Publicado: Lun 26 May, 2003 3:37 pm Asunto: Problemas con decimales |
|
|
En el programa que estoy haciendo tengo una base de datos a la cual en un campo le asigno valores que van desde 0 hasta 18, pero tambien hay numeros con decimales como 8,5 que cuando trato de cogerlos y usarlos en otro Form con StrToFloat solo me toma la parte entera.
Como hago para que me tome todo el numero??
Gracias,
Mario |
|
| Volver arriba |
|
 |
_Tugui Invitado
|
Publicado: Lun 26 May, 2003 5:50 pm Asunto: |
|
|
//A ver si esto te ayuda
double valor = NombreTablaNombreCampo->Text.ToDouble();
ShowMessage(valor); |
|
| Volver arriba |
|
 |
betogu84 Ens

Registrado: 30 Abr 2003Mensajes: 26Ubicación: Barranquilla
|
Publicado: Lun 26 May, 2003 6:17 pm Asunto: Gracias!! |
|
|
Gracias me funcionó tal y como quería.
Pero me surge un inconveniente cuando trato de tomar ese valor en otro from utilizo
extern valor
Label1->Caption=valor
y me sale otro valor totalmente diferente. Pero si lo hago en la misma form si me sale el numero como es.
Que debo hacer??
Mario |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Mie 28 May, 2003 3:20 pm Asunto: |
|
|
A primera vista una de las opciones que se me ocurre es lo siguiente:
En un principio accedemos al valor de la base de datos de la siguiente forma:
double valor = NombreTablaNombreCampo->Text.ToDouble();
ShowMessage(valor);
Pues bien, si te interesa tener ese valor también en el segundo formulario ¿porqué no accedes a él con el mismo código anterior?.
Tu intentas coger un valor de una variable glabal del Formulario principal desde un Formulario secundario, el valor de esa variable se ha obtenido de la base de datos. No es que no se pueda hacer pero veo más lógico utilizar el mismo código anterior desde el Formulario secundario para obtener el valor de la base de datos ya que es el mismo que se halla en la varible global. Todo esto siempre y cuando te haya entendido bien, si no, corrígeme y daré más vueltas a mi coco para ayudarte.
Saludos. _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
betogu84 Ens

Registrado: 30 Abr 2003Mensajes: 26Ubicación: Barranquilla
|
Publicado: Mie 28 May, 2003 10:07 pm Asunto: El problema real!! |
|
|
El problema realmente radica en esto:
Yo tengo tres Forms, en el primero tengo un Edit y un boton, en el segundo tengo otro Edit y otro boton y en el tercero tengo 2 labels.
Lo que yo quiero es si yo habro el Form1 digitar un numero en el edit y que me aparezca el Form3 con el Label1 con lo del Edit, y si habro el Form2 digitar un numero en el edit y que me aparezca el Form3 con el Label2 con lo del Edit del Form2. yo tengo los siguientes codigos
TForm1 *Form1;
double valor;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
valor=Form1->Edit1->Text.ToDouble();
Form3->Show();
}
//---------------------------------------------------------------------------
TForm2 *Form2;
double valor1;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
valor1=Form2->Edit1->Text.ToDouble();
Form3->Show();
}
//---------------------------------------------------------------------------
TForm3 *Form3;
extern valor, valor1;
//---------------------------------------------------------------------------
__fastcall TForm3::TForm3(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm3::FormActivate(TObject *Sender)
{
Label1->Caption=valor;
Label2->Caption=valor1;
}
//---------------------------------------------------------------------------
Con estos codigos en el form3 no me sale el numero que entro ya sea en el form1 o en el form2. Si hago lo que tu me dices de colocar
double valor=Form1->Edit1->Text.ToDouble()
double valor1=Form2->Edit1->Text.ToDouble() en el Form3 cuando hago click ya sea en el form1 o en el form2 me sale un error de no floting number, ya que solo estoy metiendo uno de los dos numeros, por eso debo hacerlo en cada Form y tomarlo en el 3 |
|
| Volver arriba |
|
 |
betogu84 Ens

Registrado: 30 Abr 2003Mensajes: 26Ubicación: Barranquilla
|
Publicado: Mie 28 May, 2003 10:28 pm Asunto: Re: El problema real!! |
|
|
No se preocupen mas, para algo esta este foro, buscando encontre la solucion, hay que colocar extern double valor y se soluciona el problema te toma el valor en el form3
Gracias, de todos modos. |
|
| Volver arriba |
|
 |
|