Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #9  
Antiguo 21-06-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Si, es normal. El array que tu tienes lo has creado para objetos tipo procedure a secas, en tu ultimo codigo estabas intentando meter procedures con argumento alla. Seria como meter un TBitmap en un array de TShapes, por ejemplo. Si lo que quieres es hacer un array con procedures que le mandas argumentos, o con funciones, deberas declararlo de otra manera

Código Delphi [-]
    procedures_sin_nada   : array [0..10] of procedure of object;
    procedures_con_arg    : array [0..10] of procedure (s : string) of object;
    procedures_con_arg_2  : array [0..10] of procedure (a : double; td : TEdit) of object;
    funciones_con_arg     : array [0..10] of function (s : string) : string of object 
    ...

lo que se esta realmente guardando en el array es la direccion de memoria donde se encuentra cargada dicha funcion, su puntero o pointer.

Para tener varios tipos de funciones (con varios tipos y numero de argumentos) lo mejor es crear un solo tipo con una cadena de argumento y luego parsearlos. Ten en cuenta que es trabajoso, al menos hacerlo la primera vez , por lo que quiza no te acabe a salir a cuenta.

Te pongo un ejemplo

Código Delphi [-]
procedure TForm1.Funcion1(s : string);
var 
        sl : TStringList;
        arg_1 : integer;
        arg_2 : double;
        arg_3 : TEdit;
begin
        sl := TstringList.Create;
        sl.commatext := s; // siendo s, por ejemplo s := '3.2 test Edit1';
        
        arg_1 := strtofloat(sl[0]);
        arg_2 := sl[1];
        arg_3 := (FindComponent(sl[2]) as TEdit);
        ...
        sl.free;
end;

PD: en tu codigo, estas usando un array dinamico, esto es, sin indicarle la cantidad de elementos que tiene. No se si se le tiene que asignar o no memoria en este caso, pues es, a lo sumo, un array de enteros. A ver si alguien del foro lo aclara :/

Venga, saludos.

Última edición por coso fecha: 21-06-2008 a las 18:36:50.
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
Puede Delphi ejecutar procedures no compiladas sysmar Varios 3 26-03-2008 17:13:02
Hacer un insert o un update en un campo array David Firebird e Interbase 4 27-04-2007 19:14:13
Se puede hacer un multi FTP? JuanErasmo Internet 4 08-11-2006 16:38:09
Se puede hacer esto ??????? AMINOA2R Firebird e Interbase 2 21-10-2005 17:50:59
se puede hacer armando Conexión con bases de datos 6 20-05-2004 05:12:26


La franja horaria es GMT +2. Ahora son las 13:36:10.


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