FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Llamar a funcion sin definir todos los parametros
Buenos dias
es posible en Delphi llamar a una funcion con parametros sin necesidad de indicarle la totalidad de los parametros? por ejemplo
__________________
Dulce Regalo que Satanas manda para mi..... |
#2
|
||||
|
||||
Sí, es posible cuando la función tiene parámetros declarados con valor predeterminado:
|
#3
|
||||
|
||||
debo entender que si no los tiene predeterminado no se puede?
__________________
Dulce Regalo que Satanas manda para mi..... |
#4
|
||||
|
||||
Así es. De otra manera, ¿cómo sabría la función qué valores usar?
|
#5
|
||||
|
||||
mmmm
yo provengo de otro lenguaje (Visual Fox - aunque algunos no lo consideran un lenguaje) como sea... en Fox nuo podia llamar a una funcion inclusive sin parametros EstablecerRangos() Cita:
se llama a la funcion sin parametros.. dentro de la funcion se pregunta si el tipo de Variable (del parametro) es Undefined o no definido, entonces toma un valor. caso contratio es un valor definido y conserva su valor.... no he visto hasta el momento en Delphi algo parecido
__________________
Dulce Regalo que Satanas manda para mi..... |
#6
|
||||
|
||||
Me dio algo de nostalgia el ejemplo que expones. No porque le tuviera mucho cariño a FoxPro (también lo usé pero desde los tiempos en que todavía no existía la versión "visual"), sino por lo emocionante que era sacarle provecho hasta la última de sus limitadas capacidades como lenguaje (aquello de 5 niveles de llamadas como máximo era una majadería).
En Delphi sí que has visto ya algo parecido y que además requiere mucho menos código: los parámetros con valor predeterminado. |
#7
|
||||
|
||||
yo tambien use el Foxpro en sus primeras versiones... recuerdo la FoxproLn 2.0 version para redes
y aun es ese limitado lenguaje desarrolle rutinas de busqueda incremental en un "popup" simulado, asi como reportes "armados" que columnas variables e incluso recursividad
__________________
Dulce Regalo que Satanas manda para mi..... |
#8
|
||||
|
||||
Encontré esto entre mis recuerdos, que de recuerdos tienen poco pues leo mi propio código de entonces y no entiendo nada.
Código:
* Introducir Teclaso Corrector. Para usarse antes de un Read (o continuaci¢n * de Read) que leer botones, cajas de verificaci¢n o botones radio. Procedure IntrTecCor * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Si el £ltimo teclaso antes de un Read es un click de rat¢n y el * * primer objeto de lectura es un bot¢n, una caja de verificaci¢n * * o un bot¢n radio, FoxPro comete el grav¡simo error de no * * resaltar tal objeto, por lo que yo utilizo las siguientes dos * * l¡neas para asegurar que la £ltima pulsaci¢n antes del Read sea * * de teclado. Keyboard mete el teclaso en el buffer de teclado e * * InKey lo extrae de ah¡ (para que no sea le¡do en el Read). * * As¡, FoxPro "piensa" que la £ltima pulsaci¢n del usuario fue de * * teclado y s¡ resalta el objeto correctamente. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Keyboard "{F2}" Plain Clear = InKey () Return |
#9
|
||||
|
||||
Por cierto, en aquellos años tuve el descaro de diseñar un sistema de ventanas, menús y escritorio bastante más flexible que el nativo, incluyendo la capacidad de cerrar la aplicación en cualquier momento y abrirla nuevamente con todo lo que había en pantalla tal y como estaba (ventanas, variables, e incluso el cursor de teclado en el mismo objeto).
Aquello era como hacer "hibernar" a la aplicación, o como una especie de "snap shot" con el que se podía restaurar la sesión aún habiendo apagado o cambiado de computadora. Estaba encantado con aquellos pequeños artilugios. Ahhhh, que tiempos... |
#10
|
||||
|
||||
yo encontre esta...
que me seria muy util en Delphi para cuando tengo un campo que debe ser validado Cita:
Cita:
lo que hace esto es... en el primer GET o edit. no me permitira "subir", entonces lo que coloque en el campo o variable... sera validado pero.... en el segundo get si me permite subir antes de validar la variable... como dije... esto me seria muy util en Delphi
__________________
Dulce Regalo que Satanas manda para mi..... |
#11
|
||||
|
||||
Yo tuve un paso fugaz por FoxPro y lo que hice fue un sistema de menús que calcaba el de Turbo Pascal.
// Saludos |
#12
|
||||
|
||||
se me acaba de ocurrir una idea...
muchos de nosotros (los que provenimos de otros lenguajes) ya teniamos ciertas rutinas las cuales nos facilitaban la vida es por eso que propongo la creacion de un mural donde "expongamos" las soluciones que le hemos dado en el lenguaje delphi por ejemplo en Foxpro tenia la funcion IIF (asi como el iif de Access) la solucion en delphi la hice asi
y su aplicacion....
__________________
Dulce Regalo que Satanas manda para mi..... |
#13
|
||||
|
||||
Cita:
A manera informativa, te cuento que existe otra manera de lograr el efecto de utilizar un mismo método con diferentes parámetros, inclusive con diferentes tipos de parámetros... y que por supuesto te va a parecer mas largo, pero es bastante util en diferentes circunstancias... estos son los métodos sobrecargados (overload)... Código:
En la seccion (interface) procedure MyMetodo(Parametro1: Integer; Parametro2: String); overload; procedure MyMetodo(Parametro1: Integer); overload; procedure MyMetodo; overload; y en la implementacion procedure MyMetodo(Parametro1: Integer; Parametro2: String); begin end; procedure MyMetodo(Parametro1: Integer); begin end; procedure MyMetodo; begin end; |
#14
|
||||
|
||||
Ja, ja, creo que respondimos al tiempo y veo que ya tienes implementado tu overload...
curiosamente yo tengo implementada la misma funcion iif en mis programas hace tiempo aunque la implemente con un Variant y así me evité el Overload: Código:
Function IIF(blnCondicion_p:Boolean; varValorSiVerdadero_p:Variant;varValorSiFalso_p:Variant):Variant; Begin if blnCondicion_p then Result:=varValorSiVerdadero_p else Result:=varValorSiFalso_p; end; |
#15
|
|||
|
|||
Hola...
En Delphi ya existen funciones que realizan eso: IfThen en las unidades Math y StrUtils Saludos... |
#16
|
||||
|
||||
obvio que existen !!!!
pero me refiero a la practicidad.... con la funcion determino 1 dato en 1 sola linea
__________________
Dulce Regalo que Satanas manda para mi..... |
#18
|
||||
|
||||
ohhhhhhhh ya caigo
__________________
Dulce Regalo que Satanas manda para mi..... |
#19
|
||||
|
||||
El problema con esas funciones es el costo que tiene para la aplicación, porque el compilador no las transforma en código máquina equivalente a un If...Then normal.
Por ejemplo, si el tercer parámetro dado a IfThen es una expresión que llama a otra rutina, ésta se ejecutará aunque el primer parámetro sea True, es decir, se realizará un procesamiento inútil. Y aun cuando las expresiones dadas como valores a devolver sean simples valores literales o variables, la carga para la CPU seguirá siendo mayor que la de un If...Then normal (incluso si IfThen fuese compilada como una función in line). Supongo que todavía no se agrega un operador ternario en las últimas versiones del compilador de Delphi. Espero que eso ocurra, pero ruego al cielo que no vaya a ser tan horrible como el de C. Gato: Sólo son métodos las rutinas que pertenecen a una clase. Al no estar dentro de una clase, hablamos entonces de funciones / procedimientos independientes (sueltos). Saludos. Al González. AÑADO: Claro, pueden hacerse sobrecargas tanto de métodos como de rutinas sueltas. Última edición por Al González fecha: 23-03-2011 a las 22:58:18. |
#20
|
||||
|
||||
Al González siempre tan oportuno e iluistrativo con sus comentarios
__________________
Dulce Regalo que Satanas manda para mi..... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Llamar a un .exe msdos con parametros | lroblesco | Varios | 5 | 29-05-2011 05:53:27 |
Llamar funcion dll con una cadena... | robinsongm | Varios | 6 | 26-02-2010 20:55:21 |
Llamar a una función de una DLL desde PHP | MON___ | Varios | 4 | 05-10-2007 23:06:48 |
Llamar una fución(parametros) | Stevenmn | Varios | 11 | 08-08-2007 19:05:12 |
Llamar un flash con parámetros | Alexander | Varios | 0 | 13-06-2005 22:44:10 |
|