![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Devolver 3 valores con la misma funcion
Hola foro,
Tengo una funcion que me calcula desde 3 matrices diferentes y necesito devolver el valor de cada matriz dentro de la misma funcion. Lo estoy haciendo de esta manera pero solo puedo devolver 1
Solo puedo devolver 1 valor a la vez, pero requiero devolver el resultado de cada uno (L, B y R) Gracias de antemano |
#2
|
|||
|
|||
Buenas,
Lo que yo aría es primero convertir la función "function LBR_For_Venus(At_JDE:extended):extended;" en un procedure. Deesta forma ya no devuelves los valores como resultados. Luego puedes hacer algo como lo siguiente para devolver los tres valores.
Con lo anterior luego declaras las 3 variables que resiviran los datos del procedure se la pasas en los parámetros y las mismas tendrán los valores que necesitas. Por otro lado en lugar de que el resultado sea un Extended puedes hacer que sea un record con los 3 valores. Fijate cual te conviene mas para lo que necesitas. Saludos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
#3
|
|||
|
|||
Gracias,
Voy a probar lo que me dices |
#4
|
|||
|
|||
Me da estos mensajes de errores cuando lo paso como una procedure
|
#5
|
|||
|
|||
Buenas,
Fijate que los errores que te da es porque existe otro procedure/function con el mismo nombre. Para que puedas tener mas de uno con el mismo nombre pero diferentes parametros tienes que marcar a todos como "overload". Esta directiva se agrega detras de todo cuando declaras la function/procedure. En este enlace tienes un ejemplo de como se usa http://www.delphibasics.co.uk/RTL.asp?Name=Overload. No importa el ambito de la misma, es decir si una es privada y la otra pública o si las dos son públicas, solo el nombre. Cualquier cosa avisas. Saludos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
#7
|
||||
|
||||
La mejor manera, mas clara e idiomática: Usas records (que son mas livianos que clases).
http://www.delphibasics.co.uk/Article.asp?Name=Records Las funciones con params out siempre me han parecido "raras". En cambios el uso de records hace el código mucho más claro y comprensible.
__________________
El malabarista. |
#8
|
|||
|
|||
Cita:
Si te parecen raras como haces para devolver un objeto. No digo que no se pueda devolver como resultado de una función, pero en este foro y en otros e leído muchas veces que dicen que es aconsejable devolver los objetos como un parámetro de la fuunción y no como resultado. El tema es que a mi modo de ver como resultado lo inicializas dentro de la clase, pero no lo puedes liberar. Saludos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
#9
|
||||
|
||||
En el caso de Delphi y otros lenguajes, el uso de "out" es un vestigio requerido por el defecto de no poder crear "resultados multiples" sin recurrir a crear directamente records/clases. Así que estando en Delphi, entiendo el porque se usan, pero es como el "tio diferente" en el resto de la sintaxis de funciones y su uso.
P.D: He usado mas de 12 lenguajes de forma profesional y solo uso "out" params cuando me lo obliga un API externo, pero no recuerdo haberlo hecho por mi propia mano. En gran medida, el uso de records (y sus equivalentes) en otros lenguajes, me ha parecido mas simple. Pero es una de esas cosas que son de estilo...
__________________
El malabarista. |
#10
|
|||
|
|||
Cita:
|
#11
|
||||
|
||||
Primero defines cómo quieres el record: http://docwiki.embarcadero.com/RADSt...traditional.29
Y luego lo usas en tu funtion/procedure: http://docwiki.embarcadero.com/RADStudio/Rio/en/Parameters_(Delphi)#Out_Parameters
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Devolver valores en SP | GustavoCruz | MS SQL Server | 2 | 08-01-2013 03:10:52 |
Devolver varios valores en una función c++ | LuisMiguel | C++ Builder | 4 | 23-09-2012 04:23:47 |
devolver valores al form que lo llamo | djanp | Conexión con bases de datos | 9 | 20-12-2007 13:36:12 |
función date para devolver Nº dia de la semana | lucasarts_18 | PHP | 2 | 27-03-2007 14:27:03 |
problema para devolver 2 valores en una funcion | tiagor64 | OOP | 4 | 06-05-2005 15:38:59 |
![]() |
|