SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: avefenix1810 en Miércoles 24 de Noviembre de 2010, 21:26

Título: Aprendiendo un poco
Publicado por: avefenix1810 en Miércoles 24 de Noviembre de 2010, 21:26
Hola a todos.... este es mi primer post, y comienzo con una pregunta. ¿porque no funciona?

Revisando los post para aprender algo mas de C++ builder 6, encontré una pregunta de sergiocg, la que contestada por softevolutions, era relacionada con una funcion que sumada dos variable. Trate de hacer lo que decia alli y no me resultó. Lo que intente hacer fue lo siguiente:

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

int dato1,dato2;

int sumar(int x, int y)
{
int resultado;

resultado = x+y;
return resultado;
}


//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
     Close();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
     dato1 = Edit1->Text.ToInt();
     dato2 = Edit2->Text.ToInt();

     Edit3->Caption = sumar(dato1, dato2);
}
//---------------------------------------------------------------------------

Al tratar de ejecutarlo me arroja el siguiente mensaje:

[C++ Error] Unit1.cpp(41): E2247 'TControl::Caption' is not accessible

y marca el error en la siguiente fila:

     Edit3->Caption = sumar(dato1, dato2);


Bueno, si me pueden indicar cual es el problema se los agradeceré.  :comp:
Título: Re: Aprendiendo un poco
Publicado por: softevolutions en Jueves 25 de Noviembre de 2010, 10:23
MIra bien lo que estás haciendo en esta linea:

Código: C++
  1. Edit3->Caption = sumar(dato1, dato2);
  2.  

Y preguntate por que en esta otra no tienes problemas:

Código: C++
  1. dato1 = Edit1->Text.ToInt();
  2.  



Para los controles TEdit, la propiedad de lectura y escritura de valores es Text, NO Caption. Prueba de esta otra manera:

Código: C++
  1. Edit3->Text = sumar(dato1, dato2);
  2.  
Título: Re: Aprendiendo un poco
Publicado por: avefenix1810 en Domingo 28 de Noviembre de 2010, 21:40
Tienes toda la razón..... no me habia dado cuenta de eso...muchas gracias.  :D

PD: como hago para cerrar el tema???