![]() |
Llamar funciones dinamicamente.. desde strings?
Hola!
Actualmente necesito una manera de poder llamar las funciones desde string para ahorrar mucho codigo, la verdad nose si esto es posible ya que al compilar desapecen los nombres de las funciones, etc., alguna manera parecida también serviría como por ejemplo saber el address de la función y llamarlo desde ahí, espero que alguien pueda ayudarme en este complicado tema. Este código actualmente funciona para poner un ejemplo:
|
Creo que no se entiende qué quieres hacer ni qué problema tienes.
|
Es posible usando Rtti, pero requiere Delphi 2010 o superior:
|
Gracias! Me sirve!
|
Cita:
|
El RTTI lo he usado en D6 y en D7 creo está algo más currado, de todas formas Neftali tiene en blog una unidad RTTI.pas, creo aquí en el club también hay algo en trucos.
Lo cierto es que quizás Delphi no sea el mejor lenguaje para eso, (aunque lo tiene y es usable), deberías plantearte incluir un lenguaje de scripts, tipo python (busca python4Delphi) en tu aplicación. Creas una API (unas funciones en Delphi que exportan a python las cosas que requieras, Crear un Tquery, conectar a tu BBDD, algunas funciones de tu aplicación...) y ya después puedes crear scripts en python que hacen todo: - bajar ficheros de internet - enviar correos - conectar a la base de datos y hacer tareas - abrir ficheros de disco y guardarlos, analizar el contenido, etc... Tu programa solo carga el motor python4Delphi y el script lo puedes guardar tanto en disco como en la BBDD (un blob), lo puedes usar como si fueran plugins llamando a uno u otro si está en la BBDD. |
Cita:
|
Cita:
|
Cita:
|
Bueno, entonces puedes poner un ejemplo de ese codigo, y cual es la razon de ser del mismo. Tambien ayuda que version de Delphi tienes.
Te lo digo porque aunque hacer asi tiene sus gracias, no es la forma idiomatica en Delphi, y dependiendo de que es lo que buscas, se pueden hacer cosas que seran casi iguales pero mucho mas eficientes... |
| La franja horaria es GMT +2. Ahora son las 07:24:36. |
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