FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Funciones y Polimorfismo: Como pasar parámetros
Hola Listeros,
Estoy desarrollando una apliación en donde tengo varias estructuras similares, que difrieren más que todo en cantidad de atributos que en comportamiento. Tengo Detalles de Factura, de Ordenes de Compra y De Ordenes Productivas. Declaro una Clase TDetalle que tiene los valores y comportamiento común a todos. Y declaro las otras clases Heredando de esta, Ej: TDetalleFactura que hereda de TDetalle TDetalleFactura = Class(TDetalle) El problema que tengo es que declaro una función que recibe como parámetro un Objeto de tipo TDetalle y cuando trato de pasarle un TDetalleFactura o TDetalleOrden, me dice que los tipos de datos son incompatibles. La función no pertenece a ninguna de las Clases, solo las recibe como parámetro. Trabajo Delphi 7. Espero que puedan ayudarme (o guiarme!!). |
#2
|
||||
|
||||
Hola,
Podrías poner algo del código fuente implicado en el asunto. Lo cierto es que deberías poder pasar como parámetro un "TDetalleFactura", por ejemplo, en un procedimiento que requisiera un "TDetalle", o sea, lo que necesitas puede hacerse, habría que ver, entonces, cómo estás tratando de hacerlo. |
#3
|
|||
|
|||
Código
Según la teroría debería funcionar!! Última edición por dec fecha: 12-07-2007 a las 23:39:40. |
#4
|
||||
|
||||
Hola,
Alto ahí forastero, no te llevarás nuestro oro... huy, perdón, que me lío. Que digo que la "función problemática" requiere, precisamente, un "array de TDetalles", o sea, no un "TDetalle" cualquiera. Ojo, ¿seguro que estás intentando pasar un Array? Hagamos una cosa, transcribe aquí, literalmente, el error que te da el compilador. |
#5
|
||||
|
||||
Hola,
Vale... a lo mejor me estoy pasando de listo o me estoy perdiendo algo. Haciendo algunas pruebas, aunque la "función problemática" requiera un "Array de TDetalle", lo cierto es que acepta también que se le pase un simple "TDetalle". Pero, ojo, en mis pruebas puedo pasar también a la función un "TDetalleFactura" sin problemas... Y ahora la duda la tengo yo... ¿Cómo es que acepta la función un simple "TDetalle" si lo que requiere es un Array? Yo estoy no lo había visto antes. Y además puede llamarse a la función tanto así:
Como así:
Que sería lo que se entendería mejor... ¿Alguien puede decir algo a este respecto? Gracias. Última edición por dec fecha: 12-07-2007 a las 23:39:05. |
#6
|
|||
|
|||
Recibe TDetalle y Array of TDetalle
Cita:
|
#7
|
|||
|
|||
Necesito Tener 6 Documentos simultaneamente
trabajar_fila(i, 0, false,
encabezados_orden[i], //este es un TencabezadoOrden array [0..5] grid[i], //arreglo de Detalles sql_aux, //tquery grid_prod) //TStringGrid El grid[i], es un: grid : array[0..5, 1..8] of TLineaOrdenProduccion; (TLineaOrdenProduccion, hereda de TDetalle) El errior dice: (1069): incompatible types |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Pasar matriz como parámetros | bosterito | Varios | 1 | 26-11-2006 03:42:40 |
Polimorfismo con diferentes parámetros | Deiv | OOP | 6 | 24-11-2006 21:56:56 |
Cómo pasar los parámetros? | dunia_lv | Impresión | 0 | 15-04-2005 16:26:42 |
Como pasar parametros en la llamada de mi ejecutable? | Javi2 | Varios | 4 | 14-07-2004 16:28:35 |
como pasar parametros... | hook | SQL | 13 | 11-05-2004 19:24:14 |
|