FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
OverLoad con parametro Nil
Hola a todos!!!
Tengo la siguiente duda: Tengo una Procedure :
y lo invocaba de esta manera sin ningún problema (o sea compilaba y ejecutaba)
Ahora resulta que extendí ese procedimiento, y me quedo así:
Hasta aca todo bien pero al momento de compilar me sale el error de: Cita:
Si alguien me podría explicar porque pasando 'Nil' no anda... y pasando el parámetro en una variable si!!!! Saluda Atte Neeruu!!!
__________________
Saluda Atte Neeruu!!! :) |
#2
|
||||
|
||||
no es porque pasas nil en una variable, sino porque estas pasando 3 parametros en vez de 2
Igualmente, con 2 parametros deberia andar, a menos que tengas un valor por defecto en el tercer parametro... Copiaste bien el codigo que puones aca ?? |
#3
|
|||
|
|||
OverLoad con parametro Nil
Hola Javier:
Si esta bien copiado.... Fíjate que en la primera función son 2 parámetros, en la segunda son 3 parámetros, por eso esta el "overload", para sobrecargar la función.... Mira las declaraciones de las funciones:
Saluda Atte Neeruu!!!
__________________
Saluda Atte Neeruu!!! :) |
#4
|
||||
|
||||
Si, eso si. Yo me referia a cuando lo llamas:
en el primer caso lo estas llamando con 2 parametros: y en el segundo con 3 parametros:
A lo que me refiero es que no funciona porque asignas nil a una variable, sino porque lo estas llamando con mas parametros. Estoy seguro que si probas: tambien debe funcionar. Lo que no entiendo todavia es por que no funciona con 2 parametros... |
#5
|
||||
|
||||
me retracto de lo que dije...
haciendo pruebas, vi que tampoco funciona, y creo saber por que es... Cuando usas overloading de funciones o procedimientos, para saber cual de todos los AsignaExecute tiene que usar, Delphi busca por cantidad y tipo de los parametros que le pasas y los compara con la cantidad y tipo de los parametros de las distintas declaraciones de AsignaExecute... y cual es el tipo de nil ?? bueno, creo que por ahi viene la mano No estoy seguro de cual es el tipo de nil, porque no lo dice especificamente en la ayuda, solo dice que es una contante que se puede asignar a cualquier puntero, asi que podria ser Pointer, y en ese caso cuando busca que AsignaExecute debe ejecutar, estaria buscando una declaracion mas o menos asi: y no la encuentra, por eso el error. Esto es una consecuencia de usar overloading de funciones o procedimientos, que no pasaria si el procedimiento no estuviese sobrecargado (overload). Asi que vas a tener que asignar nil a una variable como le venis haciendo, si queres usarlo de esta forma. Tambien existe otra alternativa, y es usar valores por defecto en los parametros: en ves de hacer overloading declaras un solo procedimiento con un valor por defecto para el ultimo parametro: y lo usas asi: es otra opcion que te puede servir o no, pero te la dejo para que la mires Saludos |
#6
|
|||
|
|||
OverLoad con parametro Nil
Hola Javier gracias por tu respuesta...
Voy a ver lo que me decís de poner un parámetro con valor por defecto... Desde ya muchas gracias por tu explicación.... Saluda Atte Neeruu!!!
__________________
Saluda Atte Neeruu!!! :) |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
WMI- Error en parametro | MAXIUM | Varios | 0 | 31-10-2010 02:26:46 |
stdcall? overload? | hmv | OOP | 4 | 30-10-2006 21:14:28 |
problema con overload | santiago14 | Varios | 1 | 03-03-2005 14:35:00 |
Error "there is no overload version" | torito | Varios | 4 | 21-11-2003 20:54:00 |
Aclaracion de overload | tica | Varios | 3 | 06-11-2003 16:09:59 |
|