Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

paso de un array de estructuras como parametro

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: paso de un array de estructuras como parametro Responder citando

¡Hola a tod@s!

Tengo un problema con una funcion a la que le paso una estructura como parametro. La estructura pertenece a un array. Yo le quiero pasar una estructura concreta del array, por lo que le paso el array con una posicion concreta. Pero algo debo hacer mal, porque me da errores por doquier. El array y la estructura estan definidos en otro formulario. Os pongo la llamada a la funcion y la cabecera de ésta. Si veis algún fallo, agradecería que me dijeseis cual:

LLAMADA:
Imprimir(frmFomularioPrincipal->aImpresion[5]);

RECEPCION:
void __fastcall frmFormularioImpresion::Imprimir(ConfigImpresion pCofiguracion)
{
//acciones
}

Las definiciones son (en frmFormularioPrincipal):

struct ConfigImpresion{
int NumCopias;
AnsiString Orientacion;
...
};
ConfigImpresion aImpresion[9];

Gracias de antemano.

Volver arriba
Mensaje    Asunto: paso de un array de estructuras como parametro Responder citando

Hola

En primer lugar no indicas que error te da, y de momento creo que no hay ningun adivino por el foro Smile.

Prueba a pasar la estructura por referencia:

DEFINICION
void __fastcall frmFormularioImpresion::Imprimir(ConfigImpresion *pCofiguracion)

LLAMADA
Imprimir(&(frmFomularioPrincipal->aImpresion[5]));

Salu2
KAYETANO

Volver arriba
Mensaje    Asunto: paso de un array de estructuras como parametro Responder citando

Gracias por contestar, Kayetano. Esperaba algún comentario acerca del error que me da, pero no tan sarcástico, Wink .
No lo puse porque no me pareció significativo, pero ahí va (son tres errores):

1.- Me dice que falta un paréntesis, el de cierre, y situa el cursor detrás del nombre de la estructura en la declaración de la función que hay en el ".h" de frmFormularioImpresion.

2.- Me dice que hago una llamada a una función no definida y situa el cursor en la llamada a la función que hago en el ".cpp" de frmFormularioImpresion.

3.- Me dice que hay un símbolo sin definir, situando el cursor delante del nombre de la estructura en la cabecera de la función en el ".cpp" de frmFormularioImpresion.

No se si ésto te dice algo.
Yo creo que lo que me falta es decirle al compilador (con "extern" o un "define" o algo así) que la estructura que uso en frmFormularioImpresion está definida en frmFormularioPrincipal. Para mi que los errores vienen por ahí, porque intenta usar algo que no encuentra definido en ningún lado como, por ejemplo, cuando intentas usar un componente ubicado en otro formulario y no has puesto el include oportuno.
En fin, a ver si ésto le enciende la bombilla a alguien.
SalU2 para ti tambien Kayetano.

Volver arriba
Mensaje    Asunto: paso de un array de estructuras como parametro Responder citando

Hola

Has probado con "typedef", osease:

typedef struct {
...
} miStruct;

miStruct aImpresion[9];

void __fastcall frmFormularioImpresion::Imprimir(miStruct *pCofiguracion)

Hace tiempo que no toco "struct" y "typedef" pero creo recordar que era asin.

Salu2
KAYETANO

Volver arriba
Mensaje    Asunto: paso de un array de estructuras como parametro Responder citando

¡Hola Kayetano!

Si, tio. Ya he probado con TYPEDEF, con punteros, sin punteros, ..., y da igual. Siempre me da los mismos errores. A este paso me voy a rendir y, en vez de pasarle la estructura, le pasaré los campos de ésta, cada uno como un parámetro. Así ya lo he probado y funciona, pero no es tan elegante ni tan lógico como lo es pasar la estructura. De todas formas, muchas gracias por las contestaciones. Si se te ourriera algo más no dudes en decirmelo. Si consigo dar con el problema (cuanto lo dudo) subiré la respuesta.

Un abrazo. Cool

Volver arriba
Mensaje    Asunto: paso de un array de estructuras como parametro Responder citando

Hola

Mandame el codigo que te da error (definicion de la estructura y de la funcion, junto a una llamada a esta) para que yo pueda probarlo.

Mandalo a kayetano@hotmail.com

Salu2
KAYETANO

Volver arriba
Mensaje    Asunto: paso de un array de estructuras como parametro Responder citando

Seguramente ya lo hayas hecho, pero por si acaso: ¿has probado a poder el #include en el fichero en el que utilizas la estructura? Porque dices que está definida en otro formulario.
Volver arriba
Mensaje    Asunto: paso de un array de estructuras como parametro Responder citando

¡Hola jaquemate!
Si te refieres al #include que hace referencia al formulario donde tengo la estructura declarada la respuesta es sí. Es de lo primero que miré, ya que no habría sido la primera vez que me vuelvo loco por un fallo tan estúpido. Pero esta vez no, todo parece estar en orden pero no encuentro la forma de quitar el dichoso error. De momento, en vez de pasar la estructura paso sus miembros por separado, así, por lo menos, la aplicación funciona. Pero ya daré con el error.
Salu2.
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.