Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 03-11-2011
Avatar de javier7ar
javier7ar javier7ar is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 124
Poder: 21
javier7ar Va por buen camino
me retracto de lo que dije...

haciendo pruebas, vi que
Código Delphi [-]
AsignaExecute(baSearch, nil, True);
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:
Código Delphi [-]
Procedure AsignaExecute(Param1:TButtonAction; Param2:Pointer); overload;
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:
Código Delphi [-]
Procedure AsignaExecute(MyBtnAction:TButtonAction; MyExecute:TNotifyEvent; bMostrar:Boolean = FALSE);  // o = TRUE
y lo usas asi:
Código Delphi [-]
AsignaExecute(baSearch, nil);  //Toma el valor FALSE por defecto para el ultimo parametro
AsignaExecute(baSearch, nil, True);
//Tambien podes usar una variable
MyExecute := Nil;
AsignaExecute(baSearch, MyExecute);  //Toma el valor FALSE por defecto para el ultimo parametro
AsignaExecute(baSearch, MyExecute, True);
es otra opcion que te puede servir o no, pero te la dejo para que la mires
Saludos
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 06:12:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi