FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Funciones que regresan valor
Quiero saber como se hace para que una funcion regrese un valor, y si es posible regresar mas de un valor en una funcion, dentro de la misma unit y como hacerlo cuando la funcion esta dentro de otra unit.
Por ejemplo la mando llamar:
y la funcion esta asi:
Y saber si es verdad que toma la variable a, dentro de la funcion con el nombre de var1 y la variable b con el nombre var2. GRACIAS! |
#2
|
||||
|
||||
Hola,
Vayamos por partes, como dijo Jack el destripador. Lo que tú señalas como función es un procedimiento, y, la diferencia entre uno y otra, es que la función devuelve un valor, naturalmente, y el procedimiento no necesariamente. El siguiente código puede que dé alguna pequeña idea.
Si te fijas se trata de utilizar dos funciones "Suma" y "Multiplica". Ambas reciben dos parámetros de tipo integer y devuelven la suma de estos, una, y el producto de su multiplicación, otra. La segunda, además, recibe los parámetros por referencia (la palabra reservada "var" se encarga de hacérselo saber así al compilador), y, de este modo, si dentro de la función se cambia el valor de dichos parámetros/variables, estos cambios se reflejarán en las variables que se pasaron como parámetro. En el código se ve mejor: a la función "Multiplica" se le pasan dos variables con un valor "5", pero, en su interior se establece el valor de ambas a "1", y este es, efectivamente, el valor que tendrán luego de llamar a la función "Multiplica". No ocurre así en la función "Suma". No se modifica el valor de los parámetros en este caso, pero, aunque así fuera, los cambios de estos solamente estarían disponibles en el interior de la función, porque los parámetros se pasan por valor, no por referencia. No sé... no sé si te he liado más o qué. Ya dirás algo sobre todo este rollo que he soltado y veríamos cómo seguir adelante. PD. Una cosa más. Nota que la función "Multiplica", al recibir las variables/parámetros por referencia, puede decirse que devuelve más de un resultado, puesto que en la función, además del resultado, podemos ofrecer resultados en las variables que se pasan como rerefencias, o nosotros podemos tomarnos eso como resultados. Así tengo entendido que un procedimiento puede devolver un valor, aunque no como una función. Si a un procedimiento se le pasan parámetros por referencia, en cierto modo, a la que modifique dichos parámetros/variables, podemos decir que nos está devolviendo un favor... digo un valor o más de uno. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Funciones que no funcionan | micayael | PHP | 2 | 13-09-2005 22:26:33 |
Dll y funciones | mar646 | API de Windows | 2 | 27-04-2005 16:45:40 |
procedures y funciones | StartKill | Providers | 1 | 02-03-2005 12:13:28 |
Funciones de SQL | DarkSide | SQL | 6 | 24-01-2005 16:00:02 |
Funciones Ras | mauro | Varios | 0 | 17-07-2003 03:36:28 |
|