![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
![]() 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
|
|||
|
|||
![]() 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
|
|||
|
|||
![]() 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!!! :) |
![]() |
|
|
![]() |
||||
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 |
![]() |
|