FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Problemas con funcion
Disculpen mi ignorancia (que es inconmensurable), pero es que procedo de la programación en 4gl, donde la declaración de una función te permite el retorno de multiples valores.
Sin embargo, desconozco si esto es posible en delphi, aunque creo que no, ya que solo se puede asociar un valor a la variable Result ¿me equivoco?. Posdata : Ni que decir que soy principiante en esto. |
#2
|
||||
|
||||
Cita:
// Saludos |
#3
|
||||
|
||||
¿La definicion de la misma sería algo asi como?
Function devuelve_valores ( s_cadena:String) :Record; |
#4
|
||||
|
||||
Cita:
// Saludos |
#5
|
||||
|
||||
Millon de gracias, te debo una.
|
#6
|
||||
|
||||
Cita:
¿Qué viene a ser una función que regresa múltiples valores? En mis tiempos, matemáticamente hablando, regresar un sólo valor es un requisito para que una relación entre dos conjuntos sea una función. // Saludos |
#7
|
||||
|
||||
Quiero construir una sql dependiendo del campo seleccionado en un formulario, de tal manera que si este campo es coche obtendre:
Código:
If campo = 'automovil' Then s_tabla := 'automovil' s_campo := 'aut_descri' s_where := 'aut_codigo' Else If campo = 'camion' Then ... Código:
s_sql := ' Select ' + s_campo + ' From ' + s_tabla + ' Where ' + s_where + ' = 1' Esta función la he incluido en un módulo general donde están todas las funciones y procedimientos genéricos. Entre las diversas y múltiples opciones que existan, está la de crear variables globales y un sinfin más que harán de este método el menos adecuado, pero recuerda que vengo de programar en 4gl y estoy algo atrofiado, así que no te me riñas por favor. |
#8
|
||||
|
||||
Cita:
// Saludos |
#9
|
||||
|
||||
Es muy diferente la programación.
En la definición de la función no tienes que indicas el número de valores que devuelve la misma, simplemente devuelves los que te sean necesario . Y a la hora de obtener los valores es tan simple como, poner en el mismo orden las variables que los valores retornados, de esta manera si en la variable 1 quieres guardar el retorno 1 solo habrá que hacer... Código:
Main Define p_var1,p_var2,p_var3 Integer; Call devuelve_valores Returning p_var1,p_var2,p_var3 End Main Function devuelve valores Return 4,6,7 End Function Por eso, el cambio de una programación a otra es más que ostensible y uno va a base de tropezarse. Si no fuera por gente como vosotros... Última edición por bbjb fecha: 27-09-2004 a las 18:00:23. |
#10
|
||||
|
||||
Interesante.
Pero entonces ¿quiere decir que no puedes usar la llamada a una función como parte de una expresión? Por ejemplo en un lenguaje como Delphi puedes poner la expresión 3*MiFuncion + 4; En 4GL, ¿debes recoger primero los valores antes de poder usarlos? // Saludos |
#11
|
||||
|
||||
También puedes hacer ese uso de la función, solo que te he puesto como ejemplo algo similar a lo que intento hacer en delphi.
|
|
|
|