SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: mcnudi en Miércoles 8 de Noviembre de 2006, 13:44

Título: Variables
Publicado por: mcnudi en Miércoles 8 de Noviembre de 2006, 13:44
Tengo en c++ builder un formulario con un QREport para elaborar un informe.
Necesito declarar la variable i y no se donde. Espero q me ayudeis.
void __fastcall TForm3::qr1NeedData(TObject *Sender, bool &MoreData)
{
        MoreData=i<Form1->sg->RowCount;
        if (MoreData){
                QRLabel1->Caption=Form1->sg->Cells[1];
                QRLabel2->Caption=Form1->sg->Cells[2];
                QRLabel3->Caption=Form1->sg->Cells[3];
                QRLabel4->Caption=Form1->sg->Cells[4];
                QRLabel5->Caption=Form1->sg->Cells[5];
                QRLabel6->Caption=Form1->sg->Cells[6];
                QRLabel7->Caption=Form1->sg->Cells[7];
      }
      i++;
  }
Título: Re: Variables
Publicado por: lencho en Miércoles 8 de Noviembre de 2006, 16:51
pues en c++ no hay lugar especifico donde declararla, solo que se lo hace antes de usarla.

en tu ejemplo

Citar
void __fastcall TForm3::qr1NeedData(TObject *Sender, bool &MoreData){
byte i;
MoreData=i<Form1->sg->RowCount;
if (MoreData){
QRLabel1->Caption=Form1->sg->Cells[1];
QRLabel2->Caption=Form1->sg->Cells[2];
QRLabel3->Caption=Form1->sg->Cells[3];
QRLabel4->Caption=Form1->sg->Cells[4];
QRLabel5->Caption=Form1->sg->Cells[5];
QRLabel6->Caption=Form1->sg->Cells[6];
QRLabel7->Caption=Form1->sg->Cells[7];
}
i++;
}

Ah, y no te olvides de asignarle un valor a i.
BYTE.
Título: Re: Variables
Publicado por: Vatoicc en Miércoles 8 de Noviembre de 2006, 22:43
Pero lo que el necesita es una variable que recuerde el valor cada que se llame a
qr1NeedData.

Lo que tendria que hacer es declarar la variable en la clase Form3 e inicializarla en el evento OnCreate, o poner una variable estatica en qr1NeedData

Código: Text
  1.  
  2. void __fastcall TForm3::qr1NeedData(TObject *Sender, bool &MoreData)
  3. {
  4.    static int i = 0     //aqui iguales al primer valor que quieres que tome i
  5.                            //y este valor solo se pone la primera vez, la siguiente vez
  6.                            //que se llame a esta funcion, &#34;recordara&#34; el valor anterior
  7.    MoreData = i &#60; Form1-&#62;sg-&#62;RowCount;
  8.    if (MoreData)
  9.    {
  10.       QRLabel1-&#62;Caption=Form1-&#62;sg-&#62;Cells[1][i];
  11.       QRLabel2-&#62;Caption=Form1-&#62;sg-&#62;Cells[2][i];
  12.       QRLabel3-&#62;Caption=Form1-&#62;sg-&#62;Cells[3][i];
  13.       QRLabel4-&#62;Caption=Form1-&#62;sg-&#62;Cells[4][i];
  14.       QRLabel5-&#62;Caption=Form1-&#62;sg-&#62;Cells[5][i];
  15.       QRLabel6-&#62;Caption=Form1-&#62;sg-&#62;Cells[6][i];
  16.       QRLabel7-&#62;Caption=Form1-&#62;sg-&#62;Cells[7][i];
  17.    }
  18.    i++;
  19. }
  20.  
  21.  
Título: Re: Variables
Publicado por: lencho en Miércoles 8 de Noviembre de 2006, 23:01
Citar
Pero lo que el necesita es una variable que recuerde el valor cada que se llame a
qr1NeedData.
Tendras razon , pero

el dijo:
Citar
Necesito declarar la variable i y no se donde
.

BYTE.