Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-12-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No sé si el artículo "How to execute a method (procedure/function) by name", de Zarko Gajic podría servirte de algo. En todo caso copio a continuación el código para tenerlo disponible en caso necesario, puesto que me parece interesante además:

Código Delphi [-]
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject) ;
    procedure CallMeByName(Sender: TObject) ;
  private
    procedure ExecMethod(OnObject: TObject; MethodName: string) ;
  end;

var
  Form1: TForm1;

type
  TExec = procedure of object;

procedure TForm1.ExecMethod(OnObject: TObject; MethodName: string) ;
var
  Routine: TMethod;
  Exec: TExec;
begin
  Routine.Data := Pointer(OnObject) ;
  Routine.Code := OnObject.MethodAddress(MethodName) ;
  if NOT Assigned(Routine.Code) then Exit;
  Exec := TExec(Routine) ;
  Exec;
end;

procedure TForm1.CallMeByName(Sender: TObject) ;
begin
  ShowMessage('Hello Delphi!') ;
end;

procedure TForm1.Button1Click(Sender: TObject) ;
begin
  ExecMethod(Form1, 'CallMeByName') ;
end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #2  
Antiguo 09-12-2005
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 25
Caro Va por buen camino
Muy interesante pense que no se podia era algo que andaba buscando muchas gracias DEC
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 09-12-2005
Avatar de DarKraZY
DarKraZY DarKraZY is offline
Miembro
 
Registrado: ago 2003
Posts: 460
Poder: 23
DarKraZY Va por buen camino
¿Esto funciona? Lo siento por ser tan escéptico, además es que no tengo Delphi ahora a mano para probarlo.... pero ¿no se había dicho siempre que Delphi era un lenguaje compilado y por tanto éstas cosas no se podían hacer? ¿Estoy en lo cierto o me equivoco?

Gracias y un saludo.-
Responder Con Cita
  #4  
Antiguo 09-12-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,


Cita:
Empezado por DarKraZY
¿Esto funciona? Lo siento por ser tan escéptico, además es que no tengo Delphi ahora a mano para probarlo.... pero ¿no se había dicho siempre que Delphi era un lenguaje compilado y por tanto éstas cosas no se podían hacer? ¿Estoy en lo cierto o me equivoco?
Bueno. Sí que funciona. No estoy muy puesto en el tema, pero, se hace uso de lo que se conoce como "RTTI" (Runtime Type Information). Quiere decirse que hay cierta información a la que puede accederse en tiempo de ejecución, y, entre esta información, mejor dicho, a partir de ella, es posible ejecutar métodos, obtener y establecer el valor de propiedades, etc. En la página Web que se enlaza arriba hay más información al respecto. También en estos Foros se ha tratado a veces el tema.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 19-12-2005
OscarG OscarG is offline
Miembro
 
Registrado: sep 2005
Posts: 35
Poder: 0
OscarG Va por buen camino
Perdonar por no agradeceros antes pero pensaba q lo había hecho ya.

El programa funciona, pero me falta pasarle parámetros. Seguiré investigando y si descubro algo, continuaré con este hilo para completarlo.

Vaya, es increible, pensaba q me ibais a insultar y resulta q existe y es posible jeje.

Muchas gracias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 22:08:45.


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