Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Vector / Matriz dinámico (https://www.clubdelphi.com/foros/showthread.php?t=90364)

Angel.Matilla 24-05-2016 19:43:57

Vector / Matriz dinámico
 
En un formulario que uso para imprimir un informe creado con QR necesito definir unos vectores de forma dinámica. Uno de ellos lo hace bien, pero el otro no. Estoy usando este código:
En .h:
Código:

class TfIndPer : public TForm
{
__published:    // IDE-managed Components
[...]
private:    // User declarations
public:        // User declarations
    __fastcall TfIndPer(TComponent* Owner);
    int nItem, **nSitua, *nForma;
    TStringList *slSitua, *slSexo, *slForma;
};
//---------------------------------------------------------------------------
extern PACKAGE TfIndPer *fIndPer;

Y en .cpp:
Código:

slSitua = new TStringList();
fPersona->Auxiliar->Close();
fPersona->Auxiliar->SQL->Text = "SELECT Literal FROM Instalacion WHERE Etiqueta = 'Situacion' ORDER BY Valor";
fPersona->Auxiliar->Open();
for (; !fPersona->Auxiliar->Eof; fPersona->Auxiliar->Next())
    slSitua->Add(fPersona->Auxiliar->FieldByName("Literal")->AsString);

nSitua = new int *[slSitua->Count];
for (nItem = 0; nItem < slSitua->Count; nItem ++)
    nSitua[nItem] = new int[slSexo->Count];

slForma = new TStringList();
fPersona->Auxiliar->Close();
fPersona->Auxiliar->SQL->Text = "SELECT Literal FROM Instalacion WHERE Etiqueta = 'ForPago' ORDER BY Valor";
fPersona->Auxiliar->Open();
for (; !fPersona->Auxiliar->Eof; fPersona->Auxiliar->Next())
    slForma->Add(fPersona->Auxiliar->FieldByName("Literal")->AsString);

nForma = new int[slForma->Count];

El primero (nSitua) me lo crea bien porque al generar el listado salen los totales que deben salir pero el segundo (nForma) sólo me coge uno de los posibles valores. ¿Qué estoy haciendo mal?

ecfisa 25-05-2016 13:33:44

Hola.

Cita:

Empezado por Angel.Matilla (Mensaje 505531)
...
El primero (nSitua) me lo crea bien porque al generar el listado salen los totales que deben salir pero el segundo (nForma) sólo me coge uno de los posibles valores. ¿Qué estoy haciendo mal?

No lo se... ¿ Has revisado que valor tiene slForma->Count cuando entra a la siguiente linea ?
Código PHP:

nForma = new int[slForma->Count]; 

¿ Y cuál es el código donde se cargan los valores en nForma ?

Saludos :)

Angel.Matilla 27-05-2016 09:37:37

Gracias por responder. Se me había olvidado que también lo había preguntado en este foro; disculpadme. Ya lo resolví. El problema es que estaba usando un contador incorrecto para ese vector a la hora de mostrarlo. :(


La franja horaria es GMT +2. Ahora son las 02:40:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi